"{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":13,\"numPassedTests\":121,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":13,\"numTotalTests\":121,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1615452654432,\"success\":false,\"testResults\":[{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":15,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452659070,\"runtime\":4531,\"slow\":false,\"start\":1615452654539},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\places.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Place Model\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Place Model Place model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Place model exists\"},{\"ancestorTitles\":[\"GET /places\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /places\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":280,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places with invalid Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with invalid Authorization - 403\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":34,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":19,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places with invalid Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with invalid Authorization - 403\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places already existing - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"already existing - 403\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places validation failed - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"validation failed - 403\"},{\"ancestorTitles\":[\"PUT /places\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /places does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"POST /places/search\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/search requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /places/search\"],\"duration\":26,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/search with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /places/search\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/search with Authorization - another one - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - another one - 200\"},{\"ancestorTitles\":[\"DELETE /places\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /places\"],\"duration\":24,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":2},{\"startOffset\":2313,\"endOffset\":2318,\"count\":0},{\"startOffset\":2375,\"endOffset\":2381,\"count\":0}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":12}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":12},{\"startOffset\":905,\"endOffset\":943,\"count\":0},{\"startOffset\":997,\"endOffset\":1042,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":7},{\"startOffset\":1204,\"endOffset\":1228,\"count\":5},{\"startOffset\":1228,\"endOffset\":1493,\"count\":2},{\"startOffset\":1387,\"endOffset\":1493,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1},{\"startOffset\":583,\"endOffset\":771,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2},{\"startOffset\":1266,\"endOffset\":1490,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":17},{\"startOffset\":430,\"endOffset\":481,\"count\":0}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":1},{\"startOffset\":2784,\"endOffset\":3018,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":1},{\"startOffset\":2034,\"endOffset\":2220,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":1},{\"startOffset\":2290,\"endOffset\":2523,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":1},{\"startOffset\":156,\"endOffset\":161,\"count\":0},{\"startOffset\":403,\"endOffset\":867,\"count\":4},{\"startOffset\":698,\"endOffset\":718,\"count\":2},{\"startOffset\":719,\"endOffset\":725,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":29}],\"isBlockCoverage\":true},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":551,\"endOffset\":736,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":738,\"endOffset\":754,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":762,\"endOffset\":778,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":3},{\"startOffset\":887,\"endOffset\":998,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1108,\"endOffset\":1293,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1295,\"endOffset\":1311,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1319,\"endOffset\":1335,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"VisitingPlaces.create.then.res.statusCode\",\"ranges\":[{\"startOffset\":1846,\"endOffset\":2028,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2030,\"endOffset\":2248,\"count\":2},{\"startOffset\":2147,\"endOffset\":2164,\"count\":1},{\"startOffset\":2165,\"endOffset\":2179,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2256,\"endOffset\":2272,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2366,\"endOffset\":2480,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2482,\"endOffset\":2498,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2506,\"endOffset\":2522,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":15,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452661679,\"runtime\":2552,\"slow\":false,\"start\":1615452659127},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\tourist.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Tourist Model\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Tourist Model Tourist model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Tourist model exists\"},{\"ancestorTitles\":[\"GET /tourists\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /tourists\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /tourists\"],\"duration\":92,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists server error - 500\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"server error - 500\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists with invalid Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with invalid Authorization - 403\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":218,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":13,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists already existing - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"already existing - 403\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists validation failed - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"validation failed - 403\"},{\"ancestorTitles\":[\"POST /tourists\",\"POST /tourists/search\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists POST /tourists/search requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /tourists\",\"POST /tourists/search\"],\"duration\":27,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists POST /tourists/search with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /tourists\",\"POST /tourists/search\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists POST /tourists/search with Authorization - another one - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - another one - 200\"},{\"ancestorTitles\":[\"PUT /tourists\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /tourists does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"DELETE /tourists\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /tourists\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":2}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":13}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":13}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":5},{\"startOffset\":1577,\"endOffset\":1601,\"count\":4},{\"startOffset\":1601,\"endOffset\":1759,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FBRyxDQUFDSyxJQUFKLENBQVNFLFNBRlo7QUFHUkMsSUFBQUEsUUFBUSxFQUFFUixHQUFHLENBQUNLLElBQUosQ0FBU0csUUFIWDtBQUlSRixJQUFBQSxLQUFLLEVBQUVOLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQUpSO0FBS1JHLElBQUFBLElBQUksRUFBRTtBQUxFLEdBQVo7QUFPQWIsRUFBQUEsS0FBSyxDQUFDYyxRQUFOLENBQWUsSUFBSWQsS0FBSixDQUFVTyxLQUFWLENBQWYsRUFDSUgsR0FBRyxDQUFDSyxJQUFKLENBQVNNLFFBRGIsRUFDdUIsQ0FBQ0MsR0FBRCxFQUFNQyxJQUFOLEtBQWU7QUFDOUIsUUFBSUQsR0FBSixFQUFTO0FBQ0xYLE1BQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixNQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxNQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxRQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkMsUUFBQUEsTUFBTSxFQUFFO0FBQTFCLE9BQVQ7QUFDSCxLQUpELE1BS0s7QUFDRCxVQUFJbEIsR0FBRyxDQUFDSyxJQUFKLENBQVNFLFNBQWIsRUFDSU0sSUFBSSxDQUFDTixTQUFMLEdBQWlCUCxHQUFHLENBQUNLLElBQUosQ0FBU0UsU0FBMUI7QUFDSixVQUFJUCxHQUFHLENBQUNLLElBQUosQ0FBU0csUUFBYixFQUNJSyxJQUFJLENBQUNMLFFBQUwsR0FBZ0JSLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRyxRQUF6QjtBQUNKSyxNQUFBQSxJQUFJLENBQUNNLElBQUwsQ0FBVSxDQUFDUCxHQUFELEVBQU1DLElBQU4sS0FBZTtBQUNyQlosUUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLFFBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLFFBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFVBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCQyxVQUFBQSxNQUFNLEVBQUU7QUFBekIsU0FBVDtBQUNILE9BSkQ7QUFLSDtBQUNKLEdBbEJMO0FBbUJILENBM0JEOztBQTZCQSxNQUFNRSxLQUFLLEdBQUcsQ0FBQ3BCLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzlCTCxFQUFBQSxRQUFRLENBQUNDLFlBQVQsQ0FBc0IsT0FBdEIsRUFBK0IsQ0FBQ2MsR0FBRCxFQUFNQyxJQUFOLEVBQVlRLElBQVosS0FBcUI7QUFFaEQsUUFBSSxDQUFDUixJQUFMLEVBQVc7QUFDUFosTUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLE1BQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLE1BQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFFBQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxRQUFBQSxNQUFNLEVBQUUscUJBQTFCO0FBQWlETixRQUFBQSxHQUFHLEVBQUVTO0FBQXRELE9BQVQ7QUFDQSxhQUFPbkIsSUFBSSxDQUFDVSxHQUFELENBQVg7QUFDSDs7QUFDRFosSUFBQUEsR0FBRyxDQUFDc0IsS0FBSixDQUFVVCxJQUFWLEVBQWlCRCxHQUFELElBQVM7QUFDckIsVUFBSVcsS0FBSyxHQUFHekIsWUFBWSxDQUFDMEIsUUFBYixDQUFzQjtBQUFFQyxRQUFBQSxHQUFHLEVBQUV6QixHQUFHLENBQUNhLElBQUosQ0FBU1ksR0FBaEI7QUFBcUJoQixRQUFBQSxJQUFJLEVBQUVJLElBQUksQ0FBQ0o7QUFBaEMsT0FBdEIsQ0FBWjtBQUNBUixNQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsTUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsTUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsUUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJDLFFBQUFBLE1BQU0sRUFBRSxtQkFBekI7QUFBOENLLFFBQUFBLEtBQUssRUFBRUE7QUFBckQsT0FBVDtBQUNILEtBTEQ7QUFNSCxHQWRELEVBY0d2QixHQWRILEVBY1FDLEdBZFIsRUFjYUMsSUFkYjtBQWVILENBaEJEOztBQWtCQSxNQUFNd0IsZUFBZSxHQUFHLENBQUMxQixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4QyxNQUFJeUIsTUFBTSxHQUFHM0IsR0FBRyxDQUFDNEIsTUFBSixDQUFXQyxFQUF4QjtBQUNBLE1BQUlDLGlCQUFpQixHQUFHOUIsR0FBRyxDQUFDSyxJQUFKLENBQVNNLFFBQWpDO0FBQ0FmLEVBQUFBLEtBQUssQ0FBQ21DLFFBQU4sQ0FBZUosTUFBZixFQUF1QkssSUFBdkIsQ0FBNEIsVUFBVUMsYUFBVixFQUF5QjtBQUNqRCxRQUFJQSxhQUFKLEVBQW1CO0FBQ2ZBLE1BQUFBLGFBQWEsQ0FBQ0MsV0FBZCxDQUEwQmxDLEdBQUcsQ0FBQ0ssSUFBSixDQUFTOEIsV0FBbkMsRUFBZ0QsWUFBWTtBQUN4REYsUUFBQUEsYUFBYSxDQUFDZCxJQUFkO0FBQ0FsQixRQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsUUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsUUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsVUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJtQixVQUFBQSxPQUFPLEVBQUU7QUFBMUIsU0FBVDtBQUNILE9BTEQ7QUFNSCxLQVBELE1BT087QUFDSG5DLE1BQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixNQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxNQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxRQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQm1CLFFBQUFBLE9BQU8sRUFBRTtBQUEzQixPQUFUO0FBQ0g7QUFDSixHQWJELEVBYUl4QixHQUFELElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":18}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":148}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7QUFBRSxZQUFRO0FBQVYsR0FBWixDQUR1QyxDQUV2Qzs7QUFDQ1AsRUFBQUEsUUFBUSxDQUFDUSxJQUFULENBQWNELEtBQWQsRUFDSUUsSUFESixDQUNVQyxRQUFELElBQWM7QUFDaEJMLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQkosTUFBQUEsUUFBUSxFQUFFQTtBQUEzQixLQUFUO0FBQ0gsR0FMSixFQUtPSyxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxuQixFQU1JQyxLQU5KLENBTVdELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnZCO0FBT0osQ0FWRDs7QUFZQSxNQUFNRSxvQkFBb0IsR0FBRyxDQUFDYixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM3QyxNQUFJQyxLQUFLLEdBQUc7QUFBRSxZQUFRO0FBQVYsR0FBWjs7QUFDQSxNQUFJSCxHQUFHLENBQUNjLElBQUosQ0FBU0MsU0FBYixFQUF3QjtBQUNwQixRQUFJQyxRQUFRLEdBQUdoQixHQUFHLENBQUNjLElBQUosQ0FBU0MsU0FBVCxJQUFzQixFQUFyQztBQUNBWixJQUFBQSxLQUFLLEdBQUc7QUFBRSxjQUFRLE1BQVY7QUFBa0JjLE1BQUFBLEtBQUssRUFBRTtBQUFFQyxRQUFBQSxPQUFPLEVBQUVGO0FBQVg7QUFBekIsS0FBUjtBQUNIOztBQUVELE1BQUlHLE1BQU0sR0FBR25CLEdBQUcsQ0FBQ2MsSUFBSixDQUFTTSxNQUFULElBQW1CLEVBQWhDO0FBQ0F4QixFQUFBQSxRQUFRLENBQUNRLElBQVQsQ0FBY0QsS0FBZCxFQUFxQmtCLElBQXJCLENBQTBCRixNQUExQixFQUNLZCxJQURMLENBQ1dDLFFBQUQsSUFBYztBQUNoQkwsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCSixNQUFBQSxRQUFRLEVBQUVBO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1FLLEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQWZEOztBQWlCQSxNQUFNVyxVQUFVLEdBQUcsT0FBT3RCLEdBQVAsRUFBWUMsR0FBWixFQUFpQkMsSUFBakIsS0FBMEI7QUFDekMsUUFBTXFCLGNBQWMsR0FBR3pCLEtBQUssQ0FBQzBCLGtCQUFOLENBQXlCLEVBQXpCLENBQXZCO0FBQ0EsTUFBSUMsT0FBTyxHQUFHO0FBQ1ZDLElBQUFBLFFBQVEsRUFBRTFCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYSxLQURUO0FBRVZDLElBQUFBLFNBQVMsRUFBRTVCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYyxTQUZWO0FBR1ZDLElBQUFBLFFBQVEsRUFBRTdCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTZSxRQUhUO0FBSVZGLElBQUFBLEtBQUssRUFBRTNCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYSxLQUpOO0FBS1ZHLElBQUFBLE1BQU0sRUFBRTlCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTZ0IsTUFMUDtBQU1WQyxJQUFBQSxJQUFJLEVBQUU7QUFOSSxHQUFkOztBQVFBLE1BQUk7QUFDQW5DLElBQUFBLFFBQVEsQ0FBQ29DLFFBQVQsQ0FBa0IsSUFBSXBDLFFBQUosQ0FBYTZCLE9BQWIsQ0FBbEIsRUFDSUYsY0FESixFQUNvQixDQUFDWixHQUFELEVBQU1jLE9BQU4sS0FBa0I7QUFDOUIsVUFBSWQsR0FBSixFQUFTO0FBQ0xWLFFBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixRQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxRQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxVQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQnVCLFVBQUFBLE9BQU8sRUFBRXRCLEdBQUcsQ0FBQ3NCO0FBQS9CLFNBQVQ7QUFDSCxPQUpELE1BS0s7QUFDRFIsUUFBQUEsT0FBTyxDQUFDUyxJQUFSLENBQWEsQ0FBQ3ZCLEdBQUQsRUFBTWMsT0FBTixLQUFrQjtBQUMzQixjQUFJZCxHQUFKLEVBQVM7QUFDTFYsWUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLFlBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0NQLFlBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLGNBQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCdUIsY0FBQUEsT0FBTyxFQUFFO0FBQTNCLGFBQVQ7QUFDSjs7QUFDRGhDLFVBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixVQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxVQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxZQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmlCLFlBQUFBLEtBQUssRUFBRUYsT0FBTyxDQUFDRSxLQUFoQztBQUF1Q1EsWUFBQUEsUUFBUSxFQUFFWjtBQUFqRCxXQUFUO0FBQ0gsU0FURDtBQVVIO0FBQ0osS0FuQkw7QUFvQkgsR0FyQkQsQ0FxQkUsT0FBT2EsS0FBUCxFQUFjO0FBQ2JsQyxJQUFBQSxJQUFJLENBQUNTLEdBQUQsQ0FBSjtBQUNGO0FBQ0osQ0FsQ0Q7O0FBb0NBLE1BQU0wQixpQkFBaUIsR0FBRyxDQUFDckMsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDMUNOLEVBQUFBLFFBQVEsQ0FBQzBDLE1BQVQsQ0FBZ0I7QUFBRSxZQUFRO0FBQVYsR0FBaEIsRUFDS2pDLElBREwsQ0FDV2tDLElBQUQsSUFBVTtBQUNadEMsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCOEIsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRNUIsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBUkQ7O0FBVUE4QixPQUFPLENBQUMxQyxjQUFSLEdBQXlCQSxjQUF6QjtBQUNBMEMsT0FBTyxDQUFDNUIsb0JBQVIsR0FBK0JBLG9CQUEvQjtBQUNBNEIsT0FBTyxDQUFDbkIsVUFBUixHQUFxQkEsVUFBckI7QUFDQW1CLE9BQU8sQ0FBQ0osaUJBQVIsR0FBNEJBLGlCQUE1QixDLENBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNSyxxQkFBcUIsR0FBRyxDQUFDMUMsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDOUMsTUFBSXlDLFNBQVMsR0FBRzNDLEdBQUcsQ0FBQzRDLE1BQUosQ0FBV0QsU0FBM0I7QUFDQS9DLEVBQUFBLFFBQVEsQ0FBQ2lELFFBQVQsQ0FBa0JGLFNBQWxCLEVBQ0t0QyxJQURMLENBQ1dvQixPQUFELElBQWE7QUFDZnhCLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmUsTUFBQUEsT0FBTyxFQUFFQTtBQUExQixLQUFUO0FBQ0gsR0FMTCxFQUtRZCxHQUFELElBQVM7QUFDUlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCdUIsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVRMLEVBVUtyQixLQVZMLENBVVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBVnhCO0FBV0gsQ0FiRDs7QUFlQSxNQUFNbUMsd0JBQXdCLEdBQUcsQ0FBQzlDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBRWpETixFQUFBQSxRQUFRLENBQUNtRCxpQkFBVCxDQUEyQi9DLEdBQUcsQ0FBQzRDLE1BQUosQ0FBV0QsU0FBdEMsRUFBaUQ7QUFDN0NLLElBQUFBLElBQUksRUFBRWhELEdBQUcsQ0FBQ2M7QUFEbUMsR0FBakQsRUFFRztBQUFFbUMsSUFBQUEsR0FBRyxFQUFFO0FBQVAsR0FGSCxFQUdLNUMsSUFITCxDQUdXb0IsT0FBRCxJQUFhO0FBQ2Z4QixJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJlLE1BQUFBLE9BQU8sRUFBRUE7QUFBMUIsS0FBVDtBQUNILEdBUEwsRUFPUWQsR0FBRCxJQUFVO0FBQ1RWLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQnVCLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":577,\"endOffset\":744,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":746,\"endOffset\":762,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":770,\"endOffset\":786,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":3},{\"startOffset\":911,\"endOffset\":1053,\"count\":1},{\"startOffset\":951,\"endOffset\":956,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1134,\"endOffset\":1301,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1303,\"endOffset\":1319,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1327,\"endOffset\":1343,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":4},{\"startOffset\":2498,\"endOffset\":2532,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1716,\"endOffset\":2491,\"count\":4},{\"startOffset\":1751,\"endOffset\":2485,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1966,\"endOffset\":2475,\"count\":2},{\"startOffset\":2005,\"endOffset\":2238,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2634,\"endOffset\":2793,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2795,\"endOffset\":2811,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2819,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":7,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452663960,\"runtime\":2233,\"slow\":false,\"start\":1615452661727},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\schedules.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Schedule Model\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Schedule Model Schedule model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Schedule model exists\"},{\"ancestorTitles\":[\"GET /schedules\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedules requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /schedules\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedules with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /schedules\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /schedules\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /schedules does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"DELETE /schedules\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /schedules requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /schedules\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /schedules with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":2}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FBRyxDQUFDSyxJQUFKLENBQVNFLFNBRlo7QUFHUkMsSUFBQUEsUUFBUSxFQUFFUixHQUFHLENBQUNLLElBQUosQ0FBU0csUUFIWDtBQUlSRixJQUFBQSxLQUFLLEVBQUVOLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQUpSO0FBS1JHLElBQUFBLElBQUksRUFBRTtBQUxFLEdBQVo7QUFPQWIsRUFBQUEsS0FBSyxDQUFDYyxRQUFOLENBQWUsSUFBSWQsS0FBSixDQUFVTyxLQUFWLENBQWYsRUFDSUgsR0FBRyxDQUFDSyxJQUFKLENBQVNNLFFBRGIsRUFDdUIsQ0FBQ0MsR0FBRCxFQUFNQyxJQUFOLEtBQWU7QUFDOUIsUUFBSUQsR0FBSixFQUFTO0FBQ0xYLE1BQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixNQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxNQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxRQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkMsUUFBQUEsTUFBTSxFQUFFO0FBQTFCLE9BQVQ7QUFDSCxLQUpELE1BS0s7QUFDRCxVQUFJbEIsR0FBRyxDQUFDSyxJQUFKLENBQVNFLFNBQWIsRUFDSU0sSUFBSSxDQUFDTixTQUFMLEdBQWlCUCxHQUFHLENBQUNLLElBQUosQ0FBU0UsU0FBMUI7QUFDSixVQUFJUCxHQUFHLENBQUNLLElBQUosQ0FBU0csUUFBYixFQUNJSyxJQUFJLENBQUNMLFFBQUwsR0FBZ0JSLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRyxRQUF6QjtBQUNKSyxNQUFBQSxJQUFJLENBQUNNLElBQUwsQ0FBVSxDQUFDUCxHQUFELEVBQU1DLElBQU4sS0FBZTtBQUNyQlosUUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLFFBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLFFBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFVBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCQyxVQUFBQSxNQUFNLEVBQUU7QUFBekIsU0FBVDtBQUNILE9BSkQ7QUFLSDtBQUNKLEdBbEJMO0FBbUJILENBM0JEOztBQTZCQSxNQUFNRSxLQUFLLEdBQUcsQ0FBQ3BCLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzlCTCxFQUFBQSxRQUFRLENBQUNDLFlBQVQsQ0FBc0IsT0FBdEIsRUFBK0IsQ0FBQ2MsR0FBRCxFQUFNQyxJQUFOLEVBQVlRLElBQVosS0FBcUI7QUFFaEQsUUFBSSxDQUFDUixJQUFMLEVBQVc7QUFDUFosTUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLE1BQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLE1BQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFFBQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxRQUFBQSxNQUFNLEVBQUUscUJBQTFCO0FBQWlETixRQUFBQSxHQUFHLEVBQUVTO0FBQXRELE9BQVQ7QUFDQSxhQUFPbkIsSUFBSSxDQUFDVSxHQUFELENBQVg7QUFDSDs7QUFDRFosSUFBQUEsR0FBRyxDQUFDc0IsS0FBSixDQUFVVCxJQUFWLEVBQWlCRCxHQUFELElBQVM7QUFDckIsVUFBSVcsS0FBSyxHQUFHekIsWUFBWSxDQUFDMEIsUUFBYixDQUFzQjtBQUFFQyxRQUFBQSxHQUFHLEVBQUV6QixHQUFHLENBQUNhLElBQUosQ0FBU1ksR0FBaEI7QUFBcUJoQixRQUFBQSxJQUFJLEVBQUVJLElBQUksQ0FBQ0o7QUFBaEMsT0FBdEIsQ0FBWjtBQUNBUixNQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsTUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsTUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsUUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJDLFFBQUFBLE1BQU0sRUFBRSxtQkFBekI7QUFBOENLLFFBQUFBLEtBQUssRUFBRUE7QUFBckQsT0FBVDtBQUNILEtBTEQ7QUFNSCxHQWRELEVBY0d2QixHQWRILEVBY1FDLEdBZFIsRUFjYUMsSUFkYjtBQWVILENBaEJEOztBQWtCQSxNQUFNd0IsZUFBZSxHQUFHLENBQUMxQixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4QyxNQUFJeUIsTUFBTSxHQUFHM0IsR0FBRyxDQUFDNEIsTUFBSixDQUFXQyxFQUF4QjtBQUNBLE1BQUlDLGlCQUFpQixHQUFHOUIsR0FBRyxDQUFDSyxJQUFKLENBQVNNLFFBQWpDO0FBQ0FmLEVBQUFBLEtBQUssQ0FBQ21DLFFBQU4sQ0FBZUosTUFBZixFQUF1QkssSUFBdkIsQ0FBNEIsVUFBVUMsYUFBVixFQUF5QjtBQUNqRCxRQUFJQSxhQUFKLEVBQW1CO0FBQ2ZBLE1BQUFBLGFBQWEsQ0FBQ0MsV0FBZCxDQUEwQmxDLEdBQUcsQ0FBQ0ssSUFBSixDQUFTOEIsV0FBbkMsRUFBZ0QsWUFBWTtBQUN4REYsUUFBQUEsYUFBYSxDQUFDZCxJQUFkO0FBQ0FsQixRQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsUUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsUUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsVUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJtQixVQUFBQSxPQUFPLEVBQUU7QUFBMUIsU0FBVDtBQUNILE9BTEQ7QUFNSCxLQVBELE1BT087QUFDSG5DLE1BQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixNQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxNQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxRQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQm1CLFFBQUFBLE9BQU8sRUFBRTtBQUEzQixPQUFUO0FBQ0g7QUFDSixHQWJELEVBYUl4QixHQUFELElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":10}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":59}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.find.populate.populate.then.res.statusCode\",\"ranges\":[{\"startOffset\":472,\"endOffset\":642,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":644,\"endOffset\":828,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":836,\"endOffset\":852,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.remove.then.res.statusCode\",\"ranges\":[{\"startOffset\":2091,\"endOffset\":2205,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2207,\"endOffset\":2372,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2380,\"endOffset\":2396,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7QUFBRSxZQUFRO0FBQVYsR0FBWixDQUR1QyxDQUV2Qzs7QUFDQ1AsRUFBQUEsUUFBUSxDQUFDUSxJQUFULENBQWNELEtBQWQsRUFDSUUsSUFESixDQUNVQyxRQUFELElBQWM7QUFDaEJMLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQkosTUFBQUEsUUFBUSxFQUFFQTtBQUEzQixLQUFUO0FBQ0gsR0FMSixFQUtPSyxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxuQixFQU1JQyxLQU5KLENBTVdELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnZCO0FBT0osQ0FWRDs7QUFZQSxNQUFNRSxvQkFBb0IsR0FBRyxDQUFDYixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM3QyxNQUFJQyxLQUFLLEdBQUc7QUFBRSxZQUFRO0FBQVYsR0FBWjs7QUFDQSxNQUFJSCxHQUFHLENBQUNjLElBQUosQ0FBU0MsU0FBYixFQUF3QjtBQUNwQixRQUFJQyxRQUFRLEdBQUdoQixHQUFHLENBQUNjLElBQUosQ0FBU0MsU0FBVCxJQUFzQixFQUFyQztBQUNBWixJQUFBQSxLQUFLLEdBQUc7QUFBRSxjQUFRLE1BQVY7QUFBa0JjLE1BQUFBLEtBQUssRUFBRTtBQUFFQyxRQUFBQSxPQUFPLEVBQUVGO0FBQVg7QUFBekIsS0FBUjtBQUNIOztBQUVELE1BQUlHLE1BQU0sR0FBR25CLEdBQUcsQ0FBQ2MsSUFBSixDQUFTTSxNQUFULElBQW1CLEVBQWhDO0FBQ0F4QixFQUFBQSxRQUFRLENBQUNRLElBQVQsQ0FBY0QsS0FBZCxFQUFxQmtCLElBQXJCLENBQTBCRixNQUExQixFQUNLZCxJQURMLENBQ1dDLFFBQUQsSUFBYztBQUNoQkwsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCSixNQUFBQSxRQUFRLEVBQUVBO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1FLLEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQWZEOztBQWlCQSxNQUFNVyxVQUFVLEdBQUcsT0FBT3RCLEdBQVAsRUFBWUMsR0FBWixFQUFpQkMsSUFBakIsS0FBMEI7QUFDekMsUUFBTXFCLGNBQWMsR0FBR3pCLEtBQUssQ0FBQzBCLGtCQUFOLENBQXlCLEVBQXpCLENBQXZCO0FBQ0EsTUFBSUMsT0FBTyxHQUFHO0FBQ1ZDLElBQUFBLFFBQVEsRUFBRTFCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYSxLQURUO0FBRVZDLElBQUFBLFNBQVMsRUFBRTVCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYyxTQUZWO0FBR1ZDLElBQUFBLFFBQVEsRUFBRTdCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTZSxRQUhUO0FBSVZGLElBQUFBLEtBQUssRUFBRTNCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYSxLQUpOO0FBS1ZHLElBQUFBLE1BQU0sRUFBRTlCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTZ0IsTUFMUDtBQU1WQyxJQUFBQSxJQUFJLEVBQUU7QUFOSSxHQUFkOztBQVFBLE1BQUk7QUFDQW5DLElBQUFBLFFBQVEsQ0FBQ29DLFFBQVQsQ0FBa0IsSUFBSXBDLFFBQUosQ0FBYTZCLE9BQWIsQ0FBbEIsRUFDSUYsY0FESixFQUNvQixDQUFDWixHQUFELEVBQU1jLE9BQU4sS0FBa0I7QUFDOUIsVUFBSWQsR0FBSixFQUFTO0FBQ0xWLFFBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixRQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxRQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxVQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQnVCLFVBQUFBLE9BQU8sRUFBRXRCLEdBQUcsQ0FBQ3NCO0FBQS9CLFNBQVQ7QUFDSCxPQUpELE1BS0s7QUFDRFIsUUFBQUEsT0FBTyxDQUFDUyxJQUFSLENBQWEsQ0FBQ3ZCLEdBQUQsRUFBTWMsT0FBTixLQUFrQjtBQUMzQixjQUFJZCxHQUFKLEVBQVM7QUFDTFYsWUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLFlBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0NQLFlBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLGNBQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCdUIsY0FBQUEsT0FBTyxFQUFFO0FBQTNCLGFBQVQ7QUFDSjs7QUFDRGhDLFVBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixVQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxVQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxZQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmlCLFlBQUFBLEtBQUssRUFBRUYsT0FBTyxDQUFDRSxLQUFoQztBQUF1Q1EsWUFBQUEsUUFBUSxFQUFFWjtBQUFqRCxXQUFUO0FBQ0gsU0FURDtBQVVIO0FBQ0osS0FuQkw7QUFvQkgsR0FyQkQsQ0FxQkUsT0FBT2EsS0FBUCxFQUFjO0FBQ2JsQyxJQUFBQSxJQUFJLENBQUNTLEdBQUQsQ0FBSjtBQUNGO0FBQ0osQ0FsQ0Q7O0FBb0NBLE1BQU0wQixpQkFBaUIsR0FBRyxDQUFDckMsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDMUNOLEVBQUFBLFFBQVEsQ0FBQzBDLE1BQVQsQ0FBZ0I7QUFBRSxZQUFRO0FBQVYsR0FBaEIsRUFDS2pDLElBREwsQ0FDV2tDLElBQUQsSUFBVTtBQUNadEMsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCOEIsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRNUIsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBUkQ7O0FBVUE4QixPQUFPLENBQUMxQyxjQUFSLEdBQXlCQSxjQUF6QjtBQUNBMEMsT0FBTyxDQUFDNUIsb0JBQVIsR0FBK0JBLG9CQUEvQjtBQUNBNEIsT0FBTyxDQUFDbkIsVUFBUixHQUFxQkEsVUFBckI7QUFDQW1CLE9BQU8sQ0FBQ0osaUJBQVIsR0FBNEJBLGlCQUE1QixDLENBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNSyxxQkFBcUIsR0FBRyxDQUFDMUMsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDOUMsTUFBSXlDLFNBQVMsR0FBRzNDLEdBQUcsQ0FBQzRDLE1BQUosQ0FBV0QsU0FBM0I7QUFDQS9DLEVBQUFBLFFBQVEsQ0FBQ2lELFFBQVQsQ0FBa0JGLFNBQWxCLEVBQ0t0QyxJQURMLENBQ1dvQixPQUFELElBQWE7QUFDZnhCLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmUsTUFBQUEsT0FBTyxFQUFFQTtBQUExQixLQUFUO0FBQ0gsR0FMTCxFQUtRZCxHQUFELElBQVM7QUFDUlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCdUIsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVRMLEVBVUtyQixLQVZMLENBVVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBVnhCO0FBV0gsQ0FiRDs7QUFlQSxNQUFNbUMsd0JBQXdCLEdBQUcsQ0FBQzlDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBRWpETixFQUFBQSxRQUFRLENBQUNtRCxpQkFBVCxDQUEyQi9DLEdBQUcsQ0FBQzRDLE1BQUosQ0FBV0QsU0FBdEMsRUFBaUQ7QUFDN0NLLElBQUFBLElBQUksRUFBRWhELEdBQUcsQ0FBQ2M7QUFEbUMsR0FBakQsRUFFRztBQUFFbUMsSUFBQUEsR0FBRyxFQUFFO0FBQVAsR0FGSCxFQUdLNUMsSUFITCxDQUdXb0IsT0FBRCxJQUFhO0FBQ2Z4QixJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJlLE1BQUFBLE9BQU8sRUFBRUE7QUFBMUIsS0FBVDtBQUNILEdBUEwsRUFPUWQsR0FBRCxJQUFVO0FBQ1RWLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQnVCLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1716,\"endOffset\":2491,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1966,\"endOffset\":2475,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":14,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452666318,\"runtime\":2296,\"slow\":false,\"start\":1615452664022},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\employee.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Employee Model\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Employee Model Employee model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Employee model exists\"},{\"ancestorTitles\":[\"GET /employees\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /employees requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /employees\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /employees with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /employees\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /employees\"],\"duration\":13,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees validation failed - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"validation failed - 403\"},{\"ancestorTitles\":[\"POST /employees\"],\"duration\":94,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees with invalid Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with invalid Authorization - 403\"},{\"ancestorTitles\":[\"POST /employees\"],\"duration\":271,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /employees\"],\"duration\":22,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees already existing - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"already existing - 403\"},{\"ancestorTitles\":[\"POST /employees\",\"POST /employees/search\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees POST /employees/search requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /employees\",\"POST /employees/search\"],\"duration\":29,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees POST /employees/search with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /employees\",\"POST /employees/search\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees POST /employees/search with Authorization - another one - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - another one - 200\"},{\"ancestorTitles\":[\"PUT /employees\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /employees does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"DELETE /employees\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /employees requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /employees\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /employees with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":11}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":11}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":11}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7QUFESCxLQUZEO0FBS1RDLElBQUFBLElBQUksRUFBRTtBQUxHLEdBZEs7QUFxQmxCRSxFQUFBQSxRQUFRLEVBQUU7QUFDTlYsSUFBQUEsWUFBWSxFQUFFLG1FQURSO0FBRU5JLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7QUFESCxLQUZKO0FBS05DLElBQUFBLElBQUksRUFBRTtBQUxBLEdBckJRO0FBNEJsQkcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RYLElBQUFBLFlBQVksRUFBRSx3RUFETDtBQUVUSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGRDtBQUtUQyxJQUFBQSxJQUFJLEVBQUU7QUFMRyxHQTVCSztBQW1DbEJJLEVBQUFBLFNBQVMsRUFBRTtBQUNQWixJQUFBQSxZQUFZLEVBQUUsb0VBRFA7QUFFUEksSUFBQUEsUUFBUSxFQUFFO0FBQ05DLE1BQUFBLE9BQU8sRUFBRTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkg7QUFLUEMsSUFBQUEsSUFBSSxFQUFFO0FBTEMsR0FuQ087QUEwQ2xCSyxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsWUFBWSxFQUFFLG1FQURSO0FBRU5JLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7QUFESCxLQUZKO0FBS05DLElBQUFBLElBQUksRUFBRTtBQUxBLEdBMUNRO0FBaURsQk0sRUFBQUEsS0FBSyxFQUFFO0FBQ0hkLElBQUFBLFlBQVksRUFBRSxvQ0FEWDtBQUVIZSxJQUFBQSxPQUFPLEVBQUUsSUFGTjtBQUdIUCxJQUFBQSxJQUFJLEVBQUU7QUFISCxHQWpEVztBQXNEbEJRLEVBQUFBLE1BQU0sRUFBRTtBQUNKaEIsSUFBQUEsWUFBWSxFQUFFLHdDQURWO0FBRUpJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLEVBQVA7QUFBV0MsUUFBQUEsR0FBRyxFQUFFO0FBQWhCO0FBREgsS0FGTjtBQUtKVSxJQUFBQSxPQUFPLEVBQUU7QUFDTFosTUFBQUEsT0FBTyxFQUFFLENBQUMsVUFBRCxDQURKO0FBRUxMLE1BQUFBLFlBQVksRUFBRTtBQUZULEtBTEw7QUFTSlEsSUFBQUEsSUFBSSxFQUFFO0FBVEYsR0F0RFU7QUFpRWxCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmQsSUFBQUEsUUFBUSxFQUFFO0FBQ05KLE1BQUFBLFlBQVksRUFBRSwwQ0FEUjtBQUVOSyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFO0FBQVA7QUFGSDtBQURKLEdBakVRO0FBdUVsQmEsRUFBQUEsZ0JBQWdCLEVBQUU7QUFDZG5CLElBQUFBLFlBQVksRUFBRSxnREFEQTtBQUVkb0IsSUFBQUEsTUFBTSxFQUFFO0FBQ0pmLE1BQUFBLE9BQU8sRUFBRSxDQUFDZ0IsS0FBRCxFQUFRO0FBQUVDLFFBQUFBO0FBQUYsT0FBUixLQUFvQkQsS0FBSyxLQUFLQyxHQUFHLENBQUNDLElBQUosQ0FBU0w7QUFENUM7QUFGTSxHQXZFQTtBQTZFbEJNLEVBQUFBLEtBQUssRUFBRTtBQUNIeEIsSUFBQUEsWUFBWSxFQUFFLDBCQURYO0FBRUh5QixJQUFBQSxJQUFJLEVBQUU7QUFDRnBCLE1BQUFBLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBRCxFQUFTLFFBQVQsRUFBbUIsVUFBbkIsQ0FBRDtBQURQO0FBRkgsR0E3RVc7QUFtRmxCcUIsRUFBQUEsVUFBVSxFQUFFO0FBQ1IxQixJQUFBQSxZQUFZLEVBQUUscUVBRE47QUFFUkksSUFBQUEsUUFBUSxFQUFFO0FBQ05DLE1BQUFBLE9BQU8sRUFBRTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":16}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":673,\"endOffset\":843,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":845,\"endOffset\":861,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":869,\"endOffset\":885,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":3},{\"startOffset\":1172,\"endOffset\":1350,\"count\":1},{\"startOffset\":1212,\"endOffset\":1217,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1432,\"endOffset\":1602,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1604,\"endOffset\":1620,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1628,\"endOffset\":1644,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3127,\"endOffset\":3241,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3243,\"endOffset\":3259,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3267,\"endOffset\":3283,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":112}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":12,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452668797,\"runtime\":2417,\"slow\":false,\"start\":1615452666380},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\users.test.js\",\"testResults\":[{\"ancestorTitles\":[\"User Model\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"User Model User model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"User model exists\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":26,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin SignUp - Validation error - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin SignUp - Validation error - 403\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":272,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin SignUp - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin SignUp - 200\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin SignUp - Already Existing - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin SignUp - Already Existing - 403\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":89,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin Login with wrong credentials - wrong username - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin Login with wrong credentials - wrong username - 401\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":230,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin Login with wrong credentials - wrong password - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin Login with wrong credentials - wrong password - 401\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":226,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin Login with correct credentials - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin Login with correct credentials - 200\"},{\"ancestorTitles\":[\"User Login\"],\"duration\":266,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"User Login User Login with correct credentials - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"User Login with correct credentials - 200\"},{\"ancestorTitles\":[\"User Login\"],\"duration\":236,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"User Login User Login with wrong credentials - wrong password - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"User Login with wrong credentials - wrong password - 401\"},{\"ancestorTitles\":[\"User Login\"],\"duration\":23,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"User Login User Login with wrong credentials - wrong username - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"User Login with wrong credentials - wrong username - 401\"},{\"ancestorTitles\":[\"Change Password\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Change Password requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"Change Password\"],\"duration\":230,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Change Password with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":4}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":4}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":6}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":6}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2002,\"endOffset\":2556,\"count\":1},{\"startOffset\":2359,\"endOffset\":2552,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2108,\"endOffset\":2351,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2558,\"endOffset\":2574,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":9}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":9,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452671113,\"runtime\":2258,\"slow\":false,\"start\":1615452668855},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\tourist-id.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /tourists/:touristsId\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists/:touristsId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /tourists/:touristsId\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists/:touristsId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /tourists/:touristsId\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists/:touristsId invalid tourists id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid tourists id - 404\"},{\"ancestorTitles\":[\"POST /tourists/:touristsId\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists/:touristsId does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"PUT /tourists/:touristId\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /tourists/:touristId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /tourists/:touristId\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /tourists/:touristId Invalid Id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Invalid Id - 404\"},{\"ancestorTitles\":[\"PUT /tourists/:touristId\"],\"duration\":22,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /tourists/:touristId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"DELETE /tourists/:touristeId\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists/:touristeId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /tourists/:touristeId\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists/:touristeId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":7}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":7}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":4}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":11}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":56}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQXZCO0FBRUFELGNBQWMsQ0FBQ0UsR0FBZixDQUFtQlIsVUFBVSxDQUFDUyxJQUFYLEVBQW5CLEUsQ0FDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBSCxjQUFjLENBQUNJLEtBQWYsQ0FBcUIsR0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFNkNkLFlBQVksQ0FBQ2UsZUFGMUQsRUFFMkViLGtCQUFrQixDQUFDYyxlQUY5RixFQUdLQyxJQUhMLENBR1VuQixJQUFJLENBQUNXLGVBSGYsRUFHZ0NULFlBQVksQ0FBQ2MsVUFIN0MsRUFHeURaLGtCQUFrQixDQUFDZ0IsV0FINUUsRUFJS0MsR0FKTCxDQUlTckIsSUFBSSxDQUFDVyxlQUpkLEVBSStCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzNDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEsMkNBQVI7QUFDSCxDQVBMLEVBUUtDLE1BUkwsQ0FRWXpCLElBQUksQ0FBQ1csZUFSakIsRUFRa0NULFlBQVksQ0FBQ2MsVUFSL0MsRUFRMkRkLFlBQVksQ0FBQ3dCLFdBUnhFLEVBUXFGdEIsa0JBQWtCLENBQUN1QixrQkFSeEcsRSxDQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixjQUFjLENBQUNJLEtBQWYsQ0FBcUIsY0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DVCxZQUFZLENBQUNjLFVBRGhELEVBQzRELENBQUNKLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEbEcsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFNkNaLGtCQUFrQixDQUFDd0Isc0JBRmhFLEVBR0tULElBSEwsQ0FHVW5CLElBQUksQ0FBQ1csZUFIZixFQUdnQ1QsWUFBWSxDQUFDYyxVQUg3QyxFQUd5RGQsWUFBWSxDQUFDd0IsV0FIdEUsRUFHbUYsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDL0ZULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSxnREFBZ0RaLEdBQUcsQ0FBQ2lCLE1BQUosQ0FBV0MsVUFBbkU7QUFDSCxDQU5MLEVBT0tULEdBUEwsQ0FPU3JCLElBQUksQ0FBQ1csZUFQZCxFQU8rQlQsWUFBWSxDQUFDYyxVQVA1QyxFQU93RGQsWUFBWSxDQUFDZSxlQVByRSxFQU9zRmIsa0JBQWtCLENBQUMyQixrQkFQekcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRcUZ0QixrQkFBa0IsQ0FBQzRCLGtCQVJ4RztBQVVBM0IsY0FBYyxDQUFDSSxLQUFmLENBQXFCLGVBQXJCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQ1QsWUFBWSxDQUFDYyxVQURoRCxFQUM0RCxDQUFDSixHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRGxHLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixrQkFBa0IsQ0FBQzZCLHVCQUZoRTtBQUlBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI5QixjQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1716,\"endOffset\":2491,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1966,\"endOffset\":2475,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Tourists.findById.then.res.statusCode\",\"ranges\":[{\"startOffset\":3376,\"endOffset\":3540,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3542,\"endOffset\":3734,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3742,\"endOffset\":3758,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Tourists.findByIdAndUpdate.then.res.statusCode\",\"ranges\":[{\"startOffset\":3923,\"endOffset\":4087,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4089,\"endOffset\":4281,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4289,\"endOffset\":4305,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4417,\"endOffset\":4576,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4578,\"endOffset\":4594,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4602,\"endOffset\":4618,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":9,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452673605,\"runtime\":2431,\"slow\":false,\"start\":1615452671174},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\schedule.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Schedule Model\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Schedule Model Schedule model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Schedule model exists\"},{\"ancestorTitles\":[\"GET /schedules\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedules requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /schedules\"],\"duration\":30,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedules with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /schedules\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /schedules\"],\"duration\":37,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /schedules\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules validation failed - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"validation failed - 403\"},{\"ancestorTitles\":[\"PUT /schedule\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /schedule does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"DELETE /schedule\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /schedule requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /schedule\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /schedule with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":7}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":7}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":3}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":12}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":61}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Schedules.find.populate.populate.then.res.statusCode\",\"ranges\":[{\"startOffset\":472,\"endOffset\":642,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":644,\"endOffset\":828,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":836,\"endOffset\":852,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.create.then.res.statusCode\",\"ranges\":[{\"startOffset\":1649,\"endOffset\":1816,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1818,\"endOffset\":1983,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1991,\"endOffset\":2007,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Schedules.remove.then.res.statusCode\",\"ranges\":[{\"startOffset\":2091,\"endOffset\":2205,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2207,\"endOffset\":2372,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2380,\"endOffset\":2396,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1716,\"endOffset\":2491,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1966,\"endOffset\":2475,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":2,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452675659,\"runtime\":2000,\"slow\":false,\"start\":1615452673659},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\dashboard.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /dashboard\"],\"duration\":92,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /dashboard requires Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 403\"},{\"ancestorTitles\":[\"GET /dashboard\"],\"duration\":53,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /dashboard with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":4}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":29}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQXZCO0FBRUFELGNBQWMsQ0FBQ0UsR0FBZixDQUFtQlIsVUFBVSxDQUFDUyxJQUFYLEVBQW5CLEUsQ0FDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBSCxjQUFjLENBQUNJLEtBQWYsQ0FBcUIsR0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFNkNkLFlBQVksQ0FBQ2UsZUFGMUQsRUFFMkViLGtCQUFrQixDQUFDYyxlQUY5RixFQUdLQyxJQUhMLENBR1VuQixJQUFJLENBQUNXLGVBSGYsRUFHZ0NULFlBQVksQ0FBQ2MsVUFIN0MsRUFHeURaLGtCQUFrQixDQUFDZ0IsV0FINUUsRUFJS0MsR0FKTCxDQUlTckIsSUFBSSxDQUFDVyxlQUpkLEVBSStCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzNDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEsMkNBQVI7QUFDSCxDQVBMLEVBUUtDLE1BUkwsQ0FRWXpCLElBQUksQ0FBQ1csZUFSakIsRUFRa0NULFlBQVksQ0FBQ2MsVUFSL0MsRUFRMkRkLFlBQVksQ0FBQ3dCLFdBUnhFLEVBUXFGdEIsa0JBQWtCLENBQUN1QixrQkFSeEcsRSxDQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixjQUFjLENBQUNJLEtBQWYsQ0FBcUIsY0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DVCxZQUFZLENBQUNjLFVBRGhELEVBQzRELENBQUNKLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEbEcsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFNkNaLGtCQUFrQixDQUFDd0Isc0JBRmhFLEVBR0tULElBSEwsQ0FHVW5CLElBQUksQ0FBQ1csZUFIZixFQUdnQ1QsWUFBWSxDQUFDYyxVQUg3QyxFQUd5RGQsWUFBWSxDQUFDd0IsV0FIdEUsRUFHbUYsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDL0ZULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSxnREFBZ0RaLEdBQUcsQ0FBQ2lCLE1BQUosQ0FBV0MsVUFBbkU7QUFDSCxDQU5MLEVBT0tULEdBUEwsQ0FPU3JCLElBQUksQ0FBQ1csZUFQZCxFQU8rQlQsWUFBWSxDQUFDYyxVQVA1QyxFQU93RGQsWUFBWSxDQUFDZSxlQVByRSxFQU9zRmIsa0JBQWtCLENBQUMyQixrQkFQekcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRcUZ0QixrQkFBa0IsQ0FBQzRCLGtCQVJ4RztBQVVBM0IsY0FBYyxDQUFDSSxLQUFmLENBQXFCLGVBQXJCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQ1QsWUFBWSxDQUFDYyxVQURoRCxFQUM0RCxDQUFDSixHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRGxHLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixrQkFBa0IsQ0FBQzZCLHVCQUZoRTtBQUlBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI5QixjQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":1},{\"startOffset\":2429,\"endOffset\":2461,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":976,\"endOffset\":1172,\"count\":3}],\"isBlockCoverage\":true}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":8,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452677401,\"runtime\":1691,\"slow\":false,\"start\":1615452675710},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\employee-id.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /employees/:employeeId\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /employees/:employeeId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /employees/:employeeId\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /employees/:employeeId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /employees/:employeeId\"],\"duration\":20,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /employees/:employeeId invalid employees id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid employees id - 404\"},{\"ancestorTitles\":[\"POST /employees/:touristsId\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /employees/:touristsId does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"PUT /employees/:employeeId\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /employees/:employeeId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /employees/:employeeId\"],\"duration\":23,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /employees/:employeeId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"DELETE /employees/:employeesId\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /employees/:employeesId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /employees/:employeesId\"],\"duration\":19,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /employees/:employeesId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMsbUJBQUQsQ0FBaEM7O0FBQ0EsSUFBSU0sT0FBTyxHQUFHTixPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsSUFBSU8sU0FBUyxHQUFHUCxPQUFPLENBQUMsb0JBQUQsQ0FBUCxDQUE4Qk0sT0FBOUIsQ0FBaEI7O0FBQ0EsSUFBSUUsWUFBWSxHQUFHUixPQUFPLENBQUMsZUFBRCxDQUExQjs7QUFDQSxJQUFJUyxNQUFNLEdBQUdULE9BQU8sQ0FBQyxRQUFELENBQXBCOztBQUNBLElBQUlVLFFBQVEsR0FBR1YsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsTUFBTVcsUUFBUSxHQUFHWCxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQUEsT0FBTyxDQUFDLFFBQUQsQ0FBUCxDQUFrQlksTUFBbEI7O0FBRUEsSUFBSUMsVUFBVSxHQUFHYixPQUFPLENBQUMscUJBQUQsQ0FBeEI7O0FBQ0EsSUFBSWMsY0FBYyxHQUFHZCxPQUFPLENBQUMseUJBQUQsQ0FBNUI7O0FBQ0EsSUFBSWUsV0FBVyxHQUFHZixPQUFPLENBQUMsc0JBQUQsQ0FBekI7O0FBQ0EsSUFBSWdCLGNBQWMsR0FBR2hCLE9BQU8sQ0FBQyx5QkFBRCxDQUE1Qjs7QUFDQSxJQUFJaUIsYUFBYSxHQUFHakIsT0FBTyxDQUFDLHdCQUFELENBQTNCOztBQUNBLElBQUlrQixlQUFlLEdBQUdsQixPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBRUEsSUFBSW1CLEdBQUcsR0FBR2xCLE9BQU8sRUFBakIsQyxDQUVBOztBQUNBa0IsR0FBRyxDQUFDQyxHQUFKLENBQVEsT0FBUixFQUFpQmpCLElBQUksQ0FBQ2tCLElBQUwsQ0FBVUMsU0FBVixFQUFxQixPQUFyQixDQUFqQjtBQUNBSCxHQUFHLENBQUNDLEdBQUosQ0FBUSxhQUFSLEVBQXVCLE1BQXZCO0FBQ0FELEdBQUcsQ0FBQ0ksR0FBSixDQUFRckIsSUFBSSxFQUFaO0FBQ0FpQixHQUFHLENBQUNJLEdBQUosQ0FBUWIsUUFBUSxDQUFDYyxVQUFULEVBQVI7QUFFQUwsR0FBRyxDQUFDSSxHQUFKLENBQVFuQixVQUFVLENBQUNxQixJQUFYLEVBQVI7QUFFQU4sR0FBRyxDQUFDSSxHQUFKLENBQVFmLFlBQVksQ0FBQyxvQkFBRCxDQUFwQixFLENBQ0E7O0FBQ0FXLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDd0IsSUFBUixFQUFSO0FBQ0FOLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDeUIsVUFBUixDQUFtQjtBQUFFQyxFQUFBQSxRQUFRLEVBQUU7QUFBWixDQUFuQixDQUFSO0FBQ0FSLEdBQUcsQ0FBQ0ksR0FBSixDQUFRZixZQUFZLEVBQXBCLEUsQ0FDQTs7QUFDQVcsR0FBRyxDQUFDSSxHQUFKLENBQVF0QixPQUFPLENBQUMyQixNQUFSLENBQWV6QixJQUFJLENBQUNrQixJQUFMLENBQVVDLFNBQVYsRUFBcUIsT0FBckIsQ0FBZixDQUFSO0FBRUEsSUFBSU8sR0FBRyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBdEI7O0FBQ0EsSUFBSUYsT0FBTyxDQUFDQyxHQUFSLENBQVlFLFFBQVosS0FBeUIsTUFBN0IsRUFBcUM7QUFDbkNKLEVBQUFBLEdBQUcsR0FBR0MsT0FBTyxDQUFDQyxHQUFSLENBQVlHLFlBQWxCO0FBQ0Q7O0FBQ0R2QixRQUFRLENBQUN3QixPQUFULENBQWlCTixHQUFqQixFQUFzQjtBQUFFTyxFQUFBQSxlQUFlLEVBQUUsSUFBbkI7QUFBeUJDLEVBQUFBLGNBQWMsRUFBRSxJQUF6QztBQUErQ0MsRUFBQUEsa0JBQWtCLEVBQUU7QUFBbkUsQ0FBdEIsRUFBaUdDLElBQWpHLENBQXVHQyxFQUFELElBQVEsQ0FDN0csQ0FERCxFQUNJQyxHQUFELElBQVM7QUFDVixNQUFJQSxHQUFKLEVBQVM7QUFDUEMsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksaUNBQVo7QUFDRCxHQUZELE1BRU87QUFDTEQsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVkseUJBQVo7QUFDRDtBQUNGLENBUEQ7QUFTQXhCLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFFBQVIsRUFBa0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":8}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDLE1BQUlDLEtBQUssR0FBRztBQUFFLFlBQVE7QUFBVixHQUFaO0FBQ0FQLEVBQUFBLFNBQVMsQ0FBQ1EsSUFBVixDQUFlRCxLQUFmLEVBQ0tFLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTCxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJKLE1BQUFBLFNBQVMsRUFBRUE7QUFBNUIsS0FBVDtBQUNILEdBTEwsRUFLUUssR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBVEQ7O0FBV0EsTUFBTUUscUJBQXFCLEdBQUcsQ0FBQ2IsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDOUMsTUFBSUMsS0FBSyxHQUFHO0FBQUUsWUFBUTtBQUFWLEdBQVosQ0FEOEMsQ0FFOUM7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBSUgsR0FBRyxDQUFDYyxJQUFKLENBQVNDLFNBQWIsRUFBd0I7QUFDcEIsUUFBSUMsUUFBUSxHQUFHaEIsR0FBRyxDQUFDYyxJQUFKLENBQVNDLFNBQVQsSUFBc0IsRUFBckM7QUFDQVosSUFBQUEsS0FBSyxHQUFHO0FBQUUsY0FBUSxXQUFWO0FBQXVCYyxNQUFBQSxTQUFTLEVBQUU7QUFBRUMsUUFBQUEsTUFBTSxFQUFHLEdBQUVGLFFBQVMsRUFBdEI7QUFBeUJHLFFBQUFBLFFBQVEsRUFBRTtBQUFuQztBQUFsQyxLQUFSO0FBQ0g7O0FBQ0QsTUFBSUMsTUFBTSxHQUFHcEIsR0FBRyxDQUFDYyxJQUFKLENBQVNPLE1BQVQsSUFBbUIsRUFBaEM7QUFDQXpCLEVBQUFBLFNBQVMsQ0FBQ1EsSUFBVixDQUFlRCxLQUFmLEVBQXNCbUIsSUFBdEIsQ0FBMkJGLE1BQTNCLEVBQ0tmLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTCxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJKLE1BQUFBLFNBQVMsRUFBRUE7QUFBNUIsS0FBVDtBQUNILEdBTEwsRUFLUUssR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBbEJEOztBQW9CQSxNQUFNWSxXQUFXLEdBQUcsT0FBT3ZCLEdBQVAsRUFBWUMsR0FBWixFQUFpQkMsSUFBakIsS0FBMEI7QUFDMUMsUUFBTXNCLGNBQWMsR0FBRzFCLEtBQUssQ0FBQzJCLGtCQUFOLENBQXlCLEVBQXpCLENBQXZCO0FBQ0EsTUFBSUMsUUFBUSxHQUFHO0FBQ1hDLElBQUFBLFFBQVEsRUFBRTNCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYyxLQURSO0FBRVhYLElBQUFBLFNBQVMsRUFBRWpCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTRyxTQUZUO0FBR1hZLElBQUFBLFFBQVEsRUFBRTdCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTZSxRQUhSO0FBSVhELElBQUFBLEtBQUssRUFBRTVCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYyxLQUpMO0FBS1hFLElBQUFBLElBQUksRUFBRTtBQUxLLEdBQWY7O0FBT0EsTUFBSTtBQUNBbEMsSUFBQUEsU0FBUyxDQUFDbUMsUUFBVixDQUFtQixJQUFJbkMsU0FBSixDQUFjOEIsUUFBZCxDQUFuQixFQUNJRixjQURKLEVBQ29CLENBQUNiLEdBQUQsRUFBTWUsUUFBTixLQUFtQjtBQUMvQixVQUFJZixHQUFKLEVBQVM7QUFDTFYsUUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLFFBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLFFBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLFVBQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCc0IsVUFBQUEsT0FBTyxFQUFFckIsR0FBRyxDQUFDcUI7QUFBL0IsU0FBVDtBQUNILE9BSkQsTUFLSztBQUNETixRQUFBQSxRQUFRLENBQUNPLElBQVQsQ0FBYyxDQUFDdEIsR0FBRCxFQUFNZSxRQUFOLEtBQW1CO0FBQzdCLGNBQUlmLEdBQUosRUFBUztBQUNMVixZQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sWUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQ1AsWUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsY0FBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JzQixjQUFBQSxPQUFPLEVBQUU7QUFBM0IsYUFBVDtBQUNKOztBQUNEL0IsVUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLFVBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLFVBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLFlBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCa0IsWUFBQUEsS0FBSyxFQUFFRixRQUFRLENBQUNFLEtBQWpDO0FBQXdDTSxZQUFBQSxRQUFRLEVBQUVWO0FBQWxELFdBQVQ7QUFDSCxTQVREO0FBVUg7QUFDSixLQW5CTDtBQW9CSCxHQXJCRCxDQXFCRSxPQUFPVyxLQUFQLEVBQWM7QUFDWixRQUFJeEIsR0FBRyxHQUFHLElBQUl5QixLQUFKLENBQVUsbUNBQVYsQ0FBVjtBQUNBbkMsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCc0IsTUFBQUEsT0FBTyxFQUFFckIsR0FBRyxDQUFDcUI7QUFBL0IsS0FBVDtBQUNIO0FBQ0osQ0FwQ0Q7O0FBc0NBLE1BQU1LLGtCQUFrQixHQUFHLENBQUNyQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUMzQ04sRUFBQUEsU0FBUyxDQUFDMEMsTUFBVixDQUFpQjtBQUFFLFlBQVE7QUFBVixHQUFqQixFQUNLakMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM4QixJQUFUO0FBQ0gsR0FMTCxFQUtRNUIsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBUkQ7O0FBVUE2QixPQUFPLENBQUN6QyxlQUFSLEdBQTBCQSxlQUExQjtBQUNBeUMsT0FBTyxDQUFDM0IscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBMkIsT0FBTyxDQUFDakIsV0FBUixHQUFzQkEsV0FBdEI7QUFDQWlCLE9BQU8sQ0FBQ0gsa0JBQVIsR0FBNkJBLGtCQUE3QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNSSxzQkFBc0IsR0FBRyxDQUFDekMsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDL0NOLEVBQUFBLFNBQVMsQ0FBQzhDLFFBQVYsQ0FBbUIxQyxHQUFHLENBQUMyQyxNQUFKLENBQVdDLFVBQTlCLEVBQ0t2QyxJQURMLENBQ1dxQixRQUFELElBQWM7QUFDaEJ6QixJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJnQixNQUFBQSxRQUFRLEVBQUVBO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1FmLEdBQUQsSUFBUztBQUNSVixJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JzQixNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVEwsRUFVS3BCLEtBVkwsQ0FVWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FWeEI7QUFXSCxDQVpEOztBQWNBLE1BQU1rQyx5QkFBeUIsR0FBRyxDQUFDN0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDbEQsTUFBSXdCLFFBQVEsR0FBRztBQUNYQyxJQUFBQSxRQUFRLEVBQUUzQixHQUFHLENBQUNjLElBQUosQ0FBU2MsS0FEUjtBQUVYWCxJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNjLElBQUosQ0FBU0csU0FGVDtBQUdYWSxJQUFBQSxRQUFRLEVBQUU3QixHQUFHLENBQUNjLElBQUosQ0FBU2UsUUFIUjtBQUlYRCxJQUFBQSxLQUFLLEVBQUU1QixHQUFHLENBQUNjLElBQUosQ0FBU2MsS0FKTDtBQUtYRSxJQUFBQSxJQUFJLEVBQUU7QUFMSyxHQUFmO0FBT0FsQyxFQUFBQSxTQUFTLENBQUNrRCxpQkFBVixDQUE0QjlDLEdBQUcsQ0FBQzJDLE1BQUosQ0FBV0MsVUFBdkMsRUFBbUQ7QUFDL0NHLElBQUFBLElBQUksRUFBRXJCO0FBRHlDLEdBQW5ELEVBRUc7QUFBRXNCLElBQUFBLEdBQUcsRUFBRTtBQUFQLEdBRkgsRUFHSzNDLElBSEwsQ0FHV3FCLFFBQUQsSUFBYztBQUNoQnpCLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdCLE1BQUFBLFFBQVEsRUFBRUE7QUFBM0IsS0FBVDtBQUNILEdBUEwsRUFPUWYsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FQcEIsRUFRS0MsS0FSTCxDQVFZRCxHQUFELElBQVM7QUFDWixRQUFJQSxHQUFHLEdBQUcsSUFBSXlCLEtBQUosQ0FBVSx1QkFBVixDQUFWO0FBQ0FuQyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JzQixNQUFBQSxPQUFPLEVBQUVyQixHQUFHLENBQUNxQjtBQUEvQixLQUFUO0FBQ0gsR0FiTDtBQWNILENBdEJEOztBQXdCQSxNQUFNaUIsbUJBQW1CLEdBQUcsQ0FBQ2pELEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzVDTixFQUFBQSxTQUFTLENBQUNzRCxpQkFBVixDQUE0QmxELEdBQUcsQ0FBQzJDLE1BQUosQ0FBV0MsVUFBdkMsRUFDS3ZDLElBREwsQ0FDV2tDLElBQUQsSUFBVTtBQUNadEMsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTOEIsSUFBVDtBQUNILEdBTEwsRUFLUTVCLEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1998,\"endOffset\":2777,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2250,\"endOffset\":2761,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Employees.findById.then.res.statusCode\",\"ranges\":[{\"startOffset\":3807,\"endOffset\":3974,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3976,\"endOffset\":4169,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4177,\"endOffset\":4193,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4532,\"endOffset\":4699,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4701,\"endOffset\":4717,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4725,\"endOffset\":4940,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":5055,\"endOffset\":5169,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":5171,\"endOffset\":5187,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":5195,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":906,\"endOffset\":955,\"count\":29}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":8,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452678933,\"runtime\":1482,\"slow\":false,\"start\":1615452677451},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\schedule-id.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /schedule/:scheduleId\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:scheduleId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /schedule/:scheduleId\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:scheduleId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /schedule/:scheduleId\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:scheduleId invalid schedule id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid schedule id - 404\"},{\"ancestorTitles\":[\"POST /schedules/:scheduleId\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules/:scheduleId does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"PUT /schedules/:scheduleId\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /schedules/:scheduleId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /schedules/:scheduleId\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /schedules/:scheduleId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"DELETE /schedule/:scheduleId\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /schedule/:scheduleId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /schedule/:scheduleId\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /schedule/:scheduleId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":7}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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SSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/8a/visitingPlaces_8a790a90df1ca8149ccc0a9a8308e82b.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2306\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5TW9kZXJhdGVyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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ZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbmNvbnN0IGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpO1xyXG5cclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG5jb25zdCBzY2hlZHVsZUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9zY2hlZHVsZUNvbnRyb2xsZXInKVxyXG5cclxuY29uc3Qgc2NoZWR1bGVSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuc2NoZWR1bGVSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3NjaGVkdWxlcycpO1xyXG4gICAgfSlcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sIHNjaGVkdWxlQ29udHJvbGxlci5kZWxldGVBbGxTY2hlZHVsZXMpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIFJvdXRlcyBPbiBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuc2NoZWR1bGVSb3V0ZXIucm91dGUoJy86c2NoZWR1bGVJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZClcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQT1NUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMvJyArIHJlcS5wYXJhbXMuc2NoZWR1bGVJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHNjaGVkdWxlQ29udHJvbGxlci51cGRhdGVTY2hlZHVsZUJ5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlU2NoZWR1bGVCeUlkKTtcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvdXNlci86dXNlcklkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHNjaGVkdWxlQ29udHJvbGxlci5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlcik7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVkdWxlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/25/scheduleRouter_25027b1a7926329be0d3471a955da185.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2307\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9528,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9525,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1060,\"endOffset\":1163,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1596,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1799,\"endOffset\":1928,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2263,\"endOffset\":2303,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the schedules\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsIm1lc3NhZ2UiLCJjYXRjaCIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwiYWRkU2NoZWR1bGUiLCJzY2hlZHVsZSIsInVzZXIiLCJib2R5IiwicGxhY2UiLCJkYXRlIiwic3RhdGUiLCJ0cmF2ZWxsaW5nTWV0aG9kIiwiY3JlYXRlIiwiZGVsZXRlQWxsU2NoZWR1bGVzIiwicmVtb3ZlIiwicmVzcCIsImV4cG9ydHMiLCJnZXRTY2hlZHVsZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZmluZEJ5SWRBbmRSZW1vdmUiLCJyZXNwb25zZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMscUJBQUQsQ0FBekIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1DLGVBQWUsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN4Q0wsRUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVILEdBQUcsQ0FBQ0ksS0FBbkIsRUFBMEJDLFFBQTFCLENBQW1DLE9BQW5DLEVBQTRDQSxRQUE1QyxDQUFxRCxNQUFyRCxFQUNLQyxJQURMLENBQ1dDLFNBQUQsSUFBZTtBQUNqQk4sSUFBQUEsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FQLElBQUFB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QUosR0FBaUIsR0FBakI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVIsSUFBQUEsR0FBRyxDQUFDUyxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JFLE1BQUFBLE9BQU8sRUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FUTCxFQVVLQyxLQVZMLENBVVlGLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBVnhCO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6IHNjaGVkdWxlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlZHVsZXNcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInVzZXJcIjogU3RyaW5nKHJlcS5wYXJhbXMudXNlcklkKSB9O1xyXG4gICAgU2NoZWR1bGVzLmZpbmQocXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIilcclxuICAgICAgICAudGhlbigoc2NoZWR1bGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlczogc2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVkdWxlc1wiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFNjaGVkdWxlID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgdXNlcjogcmVxLmJvZHkudXNlcixcclxuICAgICAgICBwbGFjZTogcmVxLmJvZHkucGxhY2UsXHJcbiAgICAgICAgZGF0ZTogcmVxLmJvZHkuZGF0ZSxcclxuICAgICAgICBzdGF0ZTogXCJuZXdcIixcclxuICAgICAgICB0cmF2ZWxsaW5nTWV0aG9kOiByZXEuYm9keS50cmF2ZWxsaW5nTWV0aG9kXHJcbiAgICB9XHJcbiAgICBTY2hlZHVsZXMuY3JlYXRlKHNjaGVkdWxlKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlcyA9IGdldEFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5hZGRTY2hlZHVsZSA9IGFkZFNjaGVkdWxlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbFNjaGVkdWxlcyA9IGRlbGV0ZUFsbFNjaGVkdWxlcztcclxuZXhwb3J0cy5nZXRBbGxTY2hlZHVsZXNGb3JBVXNlciA9IGdldEFsbFNjaGVkdWxlc0ZvckFVc2VyO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTogc2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJDb3VsZCBub3QgZmluZCB0aGUgcGxhY2VcIiB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCB1cGRhdGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4gICAgfSwgeyBuZXc6IHRydWUgfSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6IHNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlU2NoZWR1bGVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRTY2hlZHVsZURldGFpbHNCeUlkID0gZ2V0U2NoZWR1bGVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5SWQgPSB1cGRhdGVTY2hlZHVsZUJ5SWQ7XHJcbmV4cG9ydHMuZGVsZXRlU2NoZWR1bGVCeUlkID0gZGVsZXRlU2NoZWR1bGVCeUlkO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFNjaGVkdWxlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IFVzZXJJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLy8gY29uc3QgZ2V0U2NoZWR1bGVEZXRhaWxzQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB1cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5zY2hlZHVsZUlkLCB7XHJcbi8vICAgICAgICAgJHNldDogcmVxLmJvZHlcclxuLy8gICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbi8vICAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihzY2hlZHVsZSk7XHJcbi8vICAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4vLyAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCBkZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbi8vICAgICBTY2hlZHVsZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5zY2hlZHVsZUlkKVxyXG4vLyAgICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4vLyAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4vLyAgICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy51cGRhdGVTY2hlZHVsZUJ5VXNlcklkID0gdXBkYXRlU2NoZWR1bGVCeVVzZXJJZDtcclxuLy8gZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5VXNlcklkID0gZGVsZXRlU2NoZWR1bGVCeVVzZXJJZDsiXX0=\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules: schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the schedules\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule: schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// exports.getAllSchedulesForAUser = getScheduleDetailsByUserId;\\r\\n// exports.updateScheduleByUserId = updateScheduleByUserId;\\r\\n// exports.deleteScheduleByUserId = deleteScheduleByUserId;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/12/scheduleController_1288ebe425fa178f20aae84678d3c8d2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2308\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23199,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23196,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":856,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":891,\"endOffset\":1403,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1426,\"endOffset\":2011,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2041,\"endOffset\":2400,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":2853,\"endOffset\":3301,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.findById.then.res.statusCode\",\"ranges\":[{\"startOffset\":2924,\"endOffset\":3091,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3273,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3281,\"endOffset\":3297,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3331,\"endOffset\":3835,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.findByIdAndUpdate.then.res.statusCode\",\"ranges\":[{\"startOffset\":3458,\"endOffset\":3625,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3627,\"endOffset\":3807,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3815,\"endOffset\":3831,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":3865,\"endOffset\":4314,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.findByIdAndRemove.then.res.statusCode\",\"ranges\":[{\"startOffset\":3945,\"endOffset\":4104,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4106,\"endOffset\":4286,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4294,\"endOffset\":4310,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/71/schedules_71811d245422bedcfa43861c2d383ad1.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2309\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b7/touristRouter_b77e6d7b9b0c5655c9d19d8b2a2ed286.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2311\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n next(err);\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJnZXRBbGxUb3VyaXN0c0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsIiR0ZXh0IiwiJHNlYXJjaCIsInNvcnRieSIsInNvcnRCeSIsInNvcnQiLCJhZGRUb3VyaXN0IiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJ0b3VyaXN0IiwidXNlcm5hbWUiLCJlbWFpbCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwibW9iaWxlIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiZGVsZXRlQWxsVG91cmlzdHMiLCJyZW1vdmUiLCJyZXNwIiwicmVzcG9uc2UiLCJleHBvcnRzIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwidG91cmlzdElkIiwicGFyYW1zIiwiZmluZEJ5SWQiLCJ1cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVG91cmlzdEJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBckIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLGNBQWMsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxNQUFJQyxLQUFLLEdBQUc7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RUFBRTtBQUEzQixLQUFUO0FBQ0gsR0FYTCxFQVlLckIsS0FaTCxDQVlZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQVp4QjtBQWFILENBZkQ7O0FBaUJBLE1BQU11QyxrQkFBa0IsR0FBRyxDQUFDbEQsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDM0NOLEVBQUFBLFFBQVEsQ0FBQ3VELGlCQUFULENBQTJCbkQsR0FBRyxDQUFDNEMsTUFBSixDQUFXRCxTQUF0QyxFQUNLdEMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUI4QixNQUFBQSxRQUFRLEVBQUVEO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1E1QixHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQUxwQixFQU1LQyxLQU5MLENBTVlELEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTnhCO0FBT0gsQ0FSRDs7QUFVQThCLE9BQU8sQ0FBQ0MscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBRCxPQUFPLENBQUNLLHdCQUFSLEdBQW1DQSx3QkFBbkM7QUFDQUwsT0FBTyxDQUFDUyxrQkFBUixHQUE2QkEsa0JBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVG91cmlzdHMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgLy8gdmFyIG9iaiA9IE9iamVjdC5hc3NpZ24ocXVlcnksIHsgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9KTtcclxuICAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0cykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB0b3VyaXN0czogdG91cmlzdHMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxUb3VyaXN0c0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIgfTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiLCAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSkuc29ydChzb3J0YnkpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3RzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3RzOiB0b3VyaXN0cyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuXHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgdG91cmlzdElkID0gcmVxLnBhcmFtcy50b3VyaXN0SWQ7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZCh0b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdG91cmlzdCB3aXRoIGdpdmVuIElEJyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpOyBcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVG91cmlzdERldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBcclxuICAgIFRvdXJpc3RzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMudG91cmlzdElkLCB7XHJcbiAgICAgICAgJHNldDogcmVxLmJvZHlcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKHRvdXJpc3QpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdDogdG91cmlzdCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiAge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQVRvdXJpc3RCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnRvdXJpc3RJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCByZXNwb25zZTogcmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcblxyXG5cclxuIl19\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/65/touristController_650a8ff399060331d78272877b1fbdff.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2312\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":20391,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":20388,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":790,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":822,\"endOffset\":1347,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":2534,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":2563,\"endOffset\":2839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3278,\"endOffset\":3762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":3798,\"endOffset\":4309,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4339,\"endOffset\":4622,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/b9/dashboardRouter_b90cd7ba6ffb6c8fa795df567bf84e7f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2313\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/32/dashboardController_32c20e28b9d1d2d796cb54f3292794e7.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2314\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":8,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1615452680268,\"runtime\":1294,\"slow\":false,\"start\":1615452678974},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\places-id.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /places/:visitingPlaceId\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /places/:visitingPlaceId\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /places/:visitingPlaceId\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places/:visitingPlaceId invalid place id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid place id - 404\"},{\"ancestorTitles\":[\"POST /places/:visitingPlaceId\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/:visitingPlaceId does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"PUT /places/:visitingPlaceId\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /places/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /places/:visitingPlaceId\"],\"duration\":24,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /places/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"DELETE /places/:visitingPlaceId\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /places/:visitingPlaceId\"],\"duration\":23,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c5/app_c52436c4801521763410447d1786f80f.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU07QUFBRUksRUFBQUE7QUFBRixJQUFrQkosT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlNLGVBQWUsR0FBR04sT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1RLElBQUksR0FBR1IsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1EsR0FBWCxDQUFlTixVQUFVLENBQUNPLElBQVgsRUFBZjtBQUVBVCxVQUFVLENBQUNVLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZCxVQUFVLENBQUNlLElBQVgsQ0FBZ0IsZUFBaEIsRUFBaUNSLElBQUksQ0FBQ0ksZUFBdEMsRUFBdURMLGNBQWMsQ0FBQ1UsV0FBdEU7QUFFQWhCLFVBQVUsQ0FBQ2UsSUFBWCxDQUFnQixRQUFoQixFQUEwQlIsSUFBSSxDQUFDSSxlQUEvQixFQUFnREwsY0FBYyxDQUFDVyxLQUEvRDtBQUVBakIsVUFBVSxDQUFDZSxJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJyQixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxudmFyIHVzZXJDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdXNlckNvbnRyb2xsZXInKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJy4vY29ycycpO1xyXG5cclxudXNlclJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxudXNlclJvdXRlci5vcHRpb25zKCcqJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG5cclxudXNlclJvdXRlci5wb3N0KCcvc2lnbnVwL2FkbWluJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLnNpZ251cEFkbWluKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2xvZ2luJywgY29ycy5jb3JzV2l0aE9wdGlvbnMsIHVzZXJDb250cm9sbGVyLmxvZ2luKTtcclxuXHJcbnVzZXJSb3V0ZXIucG9zdCgnL2NoYW5nZXBhc3Nvd29yZC86aWQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5jaGFuZ2VQYXNzb3dvcmQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d4/userRouter_d4a5eaf00e56e246655c056a12d4d63c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":3688,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":3685,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":558,\"endOffset\":598,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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dCI6WyJ2YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgTG9jYWxTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsJykuU3RyYXRlZ3k7XHJcbnZhciBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcblxyXG52YXIgSnd0U3RyYXRlZ3kgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5TdHJhdGVneTtcclxudmFyIEV4dHJhY3RKd3QgPSByZXF1aXJlKCdwYXNzcG9ydC1qd3QnKS5FeHRyYWN0Snd0O1xyXG52YXIgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XHJcblxyXG5cclxucGFzc3BvcnQudXNlKG5ldyBMb2NhbFN0cmF0ZWd5KFVzZXIuYXV0aGVudGljYXRlKCkpKTtcclxucGFzc3BvcnQuc2VyaWFsaXplVXNlcihVc2VyLnNlcmlhbGl6ZVVzZXIoKSk7XHJcbnBhc3Nwb3J0LmRlc2VyaWFsaXplVXNlcihVc2VyLmRlc2VyaWFsaXplVXNlcigpKTtcclxuXHJcbmV4cG9ydHMuZ2V0VG9rZW4gPSAodXNlcikgPT4ge1xyXG4gICAgcmV0dXJuIGp3dC5zaWduKHVzZXIsIHByb2Nlc3MuZW52LnNlY3JldEtleSxcclxuICAgICAgICB7IGV4cGlyZXNJbjogMzYwMCB9KTtcclxufTtcclxuXHJcbnZhciBvcHRzID0ge307XHJcbm9wdHMuand0RnJvbVJlcXVlc3QgPSBFeHRyYWN0Snd0LmZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbigpO1xyXG5vcHRzLnNlY3JldE9yS2V5ID0gcHJvY2Vzcy5lbnYuc2VjcmV0S2V5O1xyXG5cclxuZXhwb3J0cy5qd3RQYXNzcG9ydCA9IHBhc3Nwb3J0LnVzZShuZXcgSnd0U3RyYXRlZ3kob3B0cyxcclxuICAgIChqd3RfcGF5bG9hZCwgZG9uZSkgPT4ge1xyXG4gICAgICAgIFVzZXIuZmluZE9uZSh7IF9pZDogand0X3BheWxvYWQuX2lkIH0sIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUobnVsbCwgdXNlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pKTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5VXNlciA9IHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnand0JywgeyBzZXNzaW9uOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydHMudmVyaWZ5QWRtaW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlID09ICdhZG1pbicpIHtcclxuICAgICAgICByZXR1cm4gbmV4dCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVxLnVzZXIucm9sZSAhPSAnYWRtaW4nKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdBZG1pbiBWZXJpZmljYXRpb24gRmFpbGVkIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA1MDA7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0cy52ZXJpZnlNb2RlcmF0ZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGlmIChyZXEudXNlci5yb2xlICE9ICd1c2VyJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlID09ICd1c2VyJykge1xyXG4gICAgICAgIGVyciA9IG5ldyBFcnJvcignWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIScpO1xyXG4gICAgICAgIGVyci5zdGF0dXMgPSA0MDM7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgIH1cclxufVxyXG4iXX0=\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/89/authenticate_89ae1ee4650f15c91e3296cb8ebad0c6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8164,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8161,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1761,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/2b/users_2b6e066573ef83e16399a2075d8b12b8.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2258\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/98/validation_987eb6e200ac69e0775a5238676d3637.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2298\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n var newPasswordString = req.body.password;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, err => next(err));\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwiZmluZEJ5SWQiLCJ0aGVuIiwic2FuaXRpemVkVXNlciIsInNldFBhc3N3b3JkIiwibmV3UGFzc3dvcmQiLCJtZXNzYWdlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFiOztBQUVBLElBQUlDLEtBQUssR0FBR0gsT0FBTyxDQUFDLGlCQUFELENBQW5COztBQUNBLElBQUlJLFFBQVEsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUssWUFBWSxHQUFHTCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBR0EsTUFBTU0sV0FBVyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3BDLE1BQUlDLEtBQUssR0FBRztBQUNSQyxJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxLQURYO0FBRVJDLElBQUFBLFNBQVMsRUFBRVAsR0FB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LElBQVNWLElBQUksQ0FBQ1UsR0FBRCxDQWJoQjtBQWNILENBakJEOztBQWtCQXlCLE9BQU8sQ0FBQ3RDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0FzQyxPQUFPLENBQUNqQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBaUIsT0FBTyxDQUFDWCxlQUFSLEdBQTBCQSxlQUExQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZhciBVc2VycyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG52YXIgcGFzc3BvcnQgPSByZXF1aXJlKCdwYXNzcG9ydCcpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxuXHJcblxyXG5jb25zdCBzaWdudXBBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGFkbWluID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdhZG1pbidcclxuICAgIH1cclxuICAgIFVzZXJzLnJlZ2lzdGVyKG5ldyBVc2VycyhhZG1pbiksXHJcbiAgICAgICAgcmVxLmJvZHkucGFzc3dvcmQsIChlcnIsIHVzZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnUmVnaXN0cmF0aW9uIFVuc3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5LmZpcnN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmZpcnN0bmFtZSA9IHJlcS5ib2R5LmZpcnN0bmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEuYm9keS5sYXN0bmFtZSlcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLmxhc3RuYW1lID0gcmVxLmJvZHkubGFzdG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnNhdmUoKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gU3VjY2Vzc2Z1bCEnIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgbG9naW4gPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHBhc3Nwb3J0LmF1dGhlbnRpY2F0ZSgnbG9jYWwnLCAoZXJyLCB1c2VyLCBpbmZvKSA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMTtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgc3RhdHVzOiAnTG9naW4gVW5zdWNjZXNzZnVsIScsIGVycjogaW5mbyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxLmxvZ0luKHVzZXIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gYXV0aGVudGljYXRlLmdldFRva2VuKHsgX2lkOiByZXEudXNlci5faWQsIHJvbGU6IHVzZXIucm9sZSB9KTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc3RhdHVzOiAnTG9naW4gU3VjY2Vzc2Z1bCEnLCB0b2tlbjogdG9rZW4sIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSkocmVxLCByZXMsIG5leHQpO1xyXG59XHJcblxyXG5jb25zdCBjaGFuZ2VQYXNzb3dvcmQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciB1c2VySWQgPSByZXEucGFyYW1zLmlkO1xyXG4gICAgdmFyIG5ld1Bhc3N3b3JkU3RyaW5nID0gcmVxLmJvZHkucGFzc3dvcmQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKHJlcS5ib2R5Lm5ld1Bhc3N3b3JkLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5jaGFuZ2VQYXNzb3dvcmQgPSBjaGFuZ2VQYXNzb3dvcmQ7Il19\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n var newPasswordString = req.body.password;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(req.body.newPassword, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, (err) => next(err));\\r\\n}\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/44/userController_4465f3b7e7bccb5140498217de965278.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2299\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2578,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/67/cors_67a4a6704507241953a2a89cc3aa17df.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2300\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":7}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fe/employeeRouter_fe07b2b1c0ad64c3dc74ecf2b1358b17.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2301\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find employee with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwiZ2V0QWxsRW1wbG95ZWVzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsInNlYXJjaEJ5IiwiZmlyc3RuYW1lIiwiJHJlZ2V4IiwiJG9wdGlvbnMiLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkRW1wbG95ZWUiLCJyYW5kb21QYXNzd29yZCIsInBhc3N3b3JkX2dlbmVyYXRvciIsImVtcGxveWVlIiwidXNlcm5hbWUiLCJlbWFpbCIsImxhc3RuYW1lIiwicm9sZSIsInJlZ2lzdGVyIiwibWVzc2FnZSIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDLE1BQUlDLEtBQUssR0FBRztBQUFFLFlBQVE7QUFBVixHQUFaO0FBQ0FQLEVBQUFBLFNBQVMsQ0FBQ1EsSUFBVixDQUFlRCxLQUFmLEVBQ0tFLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTCxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJKLE1BQUFBLFNBQVMsRUFBRUE7QUFBNUIsS0FBVDtBQUNILEdBTEwsRUFLUUssR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBVEQ7O0FBV0EsTUFBTUUscUJBQXFCLEdBQUcsQ0FBQ2IsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDOUMsTUFBSUMsS0FBSyxHQUFHO0FBQUUsWUFBUTtBQUFWLEdBQVosQ0FEOEMsQ0FFOUM7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBSUgsR0FBRyxDQUFDYyxJQUFKLENBQVNDLFNBQWIsRUFBd0I7QUFDcEIsUUFBSUMsUUFBUSxHQUFHaEIsR0FBRyxDQUFDYyxJQUFKLENBQVNDLFNBQVQsSUFBc0IsRUFBckM7QUFDQVosSUFBQUEsS0FBSyxHQUFHO0FBQUUsY0FBUSxXQUFWO0FBQXVCYyxNQUFBQSxTQUFTLEVBQUU7QUFBRUMsUUFBQUEsTUFBTSxFQUFHLEdBQUVGLFFBQVMsRUFBdEI7QUFBeUJHLFFBQUFBLFFBQVEsRUFBRTtBQUFuQztBQUFsQyxLQUFSO0FBQ0g7O0FBQ0QsTUFBSUMsTUFBTSxHQUFHcEIsR0FBRyxDQUFDYyxJQUFKLENBQVNPLE1BQVQsSUFBbUIsRUFBaEM7QUFDQXpCLEVBQUFBLFNBQVMsQ0FBQ1EsSUFBVixDQUFlRCxLQUFmLEVBQXNCbUIsSUFBdEIsQ0FBMkJGLE1BQTNCLEVBQ0tmLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTCxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJKLE1BQUFBLFNBQVMsRUFBRUE7QUFBNUIsS0FBVDtBQUNILEdBTEwsRUFLUUssR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBbEJEOztBQW9CQSxNQUFNWSxXQUFXLEdBQUcsT0FBT3ZCLEdBQVAsRUFBWUMsR0FBWixFQUFpQkMsSUFBakIsS0FBMEI7QUFDMUMsUUFBTXNCLGNBQWMsR0FBRzFCLEtBQUssQ0FBQzJCLGtCQUFOLENBQXlCLEVBQXpCLENBQXZCO0FBQ0EsTUFBSUMsUUFBUSxHQUFHO0FBQ1hDLElBQUFBLFFBQVEsRUFBRTNCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYyxLQURSO0FBRVhYLElBQUFBLFNBQVMsRUFBRWpCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTRyxTQUZUO0FBR1hZLElBQUFBLFFBQVEsRUFBRTdCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTZSxRQUhSO0FBSVhELElBQUFBLEtBQUssRUFBRTVCLEdBQUcsQ0FBQ2MsSUFBSixDQUFTYyxLQUpMO0FBS1hFLElBQUFBLElBQUksRUFBRTtBQUxLLEdBQWY7O0FBT0EsTUFBSTtBQUNBbEMsSUFBQUEsU0FBUyxDQUFDbUMsUUFBVixDQUFtQixJQUFJbkMsU0FBSixDQUFjOEIsUUFBZCxDQUFuQixFQUNJRixjQURKLEVBQ29CLENBQUNiLEdBQUQsRUFBTWUsUUFBTixLQUFtQjtBQUMvQixVQUFJZixHQUFKLEVBQVM7QUFDTFYsUUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLFFBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLFFBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLFVBQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCc0IsVUFBQUEsT0FBTyxFQUFFckIsR0FBRyxDQUFDcUI7QUFBL0IsU0FBVDtBQUNILE9BSkQsTUFLSztBQUNETixRQUFBQSxRQUFRLENBQUNPLElBQVQsQ0FBYyxDQUFDdEIsR0FBRCxFQUFNZSxRQUFOLEtBQW1CO0FBQzdCLGNBQUlmLEdBQUosRUFBUztBQUNMVixZQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sWUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQ1AsWUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsY0FBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JzQixjQUFBQSxPQUFPLEVBQUU7QUFBM0IsYUFBVDtBQUNKOztBQUNEL0IsVUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLFVBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLFVBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLFlBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCa0IsWUFBQUEsS0FBSyxFQUFFRixRQUFRLENBQUNFLEtBQWpDO0FBQXdDTSxZQUFBQSxRQUFRLEVBQUVWO0FBQWxELFdBQVQ7QUFDSCxTQVREO0FBVUg7QUFDSixLQW5CTDtBQW9CSCxHQXJCRCxDQXFCRSxPQUFPVyxLQUFQLEVBQWM7QUFDWixRQUFJeEIsR0FBRyxHQUFHLElBQUl5QixLQUFKLENBQVUsbUNBQVYsQ0FBVjtBQUNBbkMsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCc0IsTUFBQUEsT0FBTyxFQUFFckIsR0FBRyxDQUFDcUI7QUFBL0IsS0FBVDtBQUNIO0FBQ0osQ0FwQ0Q7O0FBc0NBLE1BQU1LLGtCQUFrQixHQUFHLENBQUNyQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUMzQ04sRUFBQUEsU0FBUyxDQUFDMEMsTUFBVixDQUFpQjtBQUFFLFlBQVE7QUFBVixHQUFqQixFQUNLakMsSUFETCxDQUNXa0MsSUFBRCxJQUFVO0FBQ1p0QyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM4QixJQUFUO0FBQ0gsR0FMTCxFQUtRNUIsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVNULElBQUksQ0FBQ1MsR0FBRCxDQU54QjtBQU9ILENBUkQ7O0FBVUE2QixPQUFPLENBQUN6QyxlQUFSLEdBQTBCQSxlQUExQjtBQUNBeUMsT0FBTyxDQUFDM0IscUJBQVIsR0FBZ0NBLHFCQUFoQztBQUNBMkIsT0FBTyxDQUFDakIsV0FBUixHQUFzQkEsV0FBdEI7QUFDQWlCLE9BQU8sQ0FBQ0gsa0JBQVIsR0FBNkJBLGtCQUE3QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNSSxzQkFBc0IsR0FBRyxDQUFDekMsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDL0NOLEVBQUFBLFNBQVMsQ0FBQzhDLFFBQVYsQ0FBbUIxQyxHQUFHLENBQUMyQyxNQUFKLENBQVdDLFVBQTlCLEVBQ0t2QyxJQURMLENBQ1dxQixRQUFELElBQWM7QUFDaEJ6QixJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLElBQVg7QUFBaUJnQixNQUFBQSxRQUFRLEVBQUVBO0FBQTNCLEtBQVQ7QUFDSCxHQUxMLEVBS1FmLEdBQUQsSUFBUztBQUNSVixJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JzQixNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVEwsRUFVS3BCLEtBVkwsQ0FVWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FWeEI7QUFXSCxDQVpEOztBQWNBLE1BQU1rQyx5QkFBeUIsR0FBRyxDQUFDN0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDbEQsTUFBSXdCLFFBQVEsR0FBRztBQUNYQyxJQUFBQSxRQUFRLEVBQUUzQixHQUFHLENBQUNjLElBQUosQ0FBU2MsS0FEUjtBQUVYWCxJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNjLElBQUosQ0FBU0csU0FGVDtBQUdYWSxJQUFBQSxRQUFRLEVBQUU3QixHQUFHLENBQUNjLElBQUosQ0FBU2UsUUFIUjtBQUlYRCxJQUFBQSxLQUFLLEVBQUU1QixHQUFHLENBQUNjLElBQUosQ0FBU2MsS0FKTDtBQUtYRSxJQUFBQSxJQUFJLEVBQUU7QUFMSyxHQUFmO0FBT0FsQyxFQUFBQSxTQUFTLENBQUNrRCxpQkFBVixDQUE0QjlDLEdBQUcsQ0FBQzJDLE1BQUosQ0FBV0MsVUFBdkMsRUFBbUQ7QUFDL0NHLElBQUFBLElBQUksRUFBRXJCO0FBRHlDLEdBQW5ELEVBRUc7QUFBRXNCLElBQUFBLEdBQUcsRUFBRTtBQUFQLEdBRkgsRUFHSzNDLElBSEwsQ0FHV3FCLFFBQUQsSUFBYztBQUNoQnpCLElBQUFBLEdBQUcsQ0FBQ00sVUFBSixHQUFpQixHQUFqQjtBQUNBTixJQUFBQSxHQUFHLENBQUNPLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdCLE1BQUFBLFFBQVEsRUFBRUE7QUFBM0IsS0FBVDtBQUNILEdBUEwsRUFPUWYsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FQcEIsRUFRS0MsS0FSTCxDQVFZRCxHQUFELElBQVM7QUFDWixRQUFJQSxHQUFHLEdBQUcsSUFBSXlCLEtBQUosQ0FBVSx1QkFBVixDQUFWO0FBQ0FuQyxJQUFBQSxHQUFHLENBQUNNLFVBQUosR0FBaUIsR0FBakI7QUFDQU4sSUFBQUEsR0FBRyxDQUFDTyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUMsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JzQixNQUFBQSxPQUFPLEVBQUVyQixHQUFHLENBQUNxQjtBQUEvQixLQUFUO0FBQ0gsR0FiTDtBQWNILENBdEJEOztBQXdCQSxNQUFNaUIsbUJBQW1CLEdBQUcsQ0FBQ2pELEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzVDTixFQUFBQSxTQUFTLENBQUNzRCxpQkFBVixDQUE0QmxELEdBQUcsQ0FBQzJDLE1BQUosQ0FBV0MsVUFBdkMsRUFDS3ZDLElBREwsQ0FDV2tDLElBQUQsSUFBVTtBQUNadEMsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTOEIsSUFBVDtBQUNILEdBTEwsRUFLUTVCLEdBQUQsSUFBU1QsSUFBSSxDQUFDUyxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FOeEI7QUFPSCxDQVJEOztBQVVBNkIsT0FBTyxDQUFDQyxzQkFBUixHQUFpQ0Esc0JBQWpDO0FBQ0FELE9BQU8sQ0FBQ0sseUJBQVIsR0FBb0NBLHlCQUFwQztBQUNBTCxPQUFPLENBQUNTLG1CQUFSLEdBQThCQSxtQkFBOUIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFbXBsb3llZXMgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscy91dGlscycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIGdldCBkZXRhaWxzIG9mIHRoZSBhc3Npc3RhbnRzXHJcbiAqIEBwYXJhbSB7Kn0gcmVxIFxyXG4gKiBAcGFyYW0geyp9IHJlcyBcclxuICogQHBhcmFtIHsqfSBuZXh0IFxyXG4gKiBAcmV0dXJucyB7YXJyYXl9IGxpc3Qgb2YgZW1wbG95ZWVzXHJcbiAqL1xyXG5jb25zdCBnZXRBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBnZXRBbGxFbXBsb3llZXNCeU5hbWUgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfTtcclxuICAgIC8vIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgIC8vICAgICB2YXIgc2VhcmNoQnkgPSByZXEuYm9keS5zaW1pbGFyVG8gfHwge31cclxuICAgIC8vICAgICBxdWVyeSA9IHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgZmlyc3RuYW1lOiB7ICRyZWdleDogYCR7c2VhcmNoQnl9YCwgJG9wdGlvbnM6IFwiaVwiIH0gfVxyXG4gICAgfVxyXG4gICAgdmFyIHNvcnRieSA9IHJlcS5ib2R5LnNvcnRCeSB8fCB7fTtcclxuICAgIEVtcGxveWVlcy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbXBsb3llZS5zYXZlKChlcnIsIGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IGVtcGxveWVlLmVtYWlsLCBwYXNzd29yZDogcmFuZG9tUGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgbmV3IHVzZXIuXCIpO1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbEVtcGxveWVlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLnJlbW92ZSh7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxFbXBsb3llZXMgPSBnZXRBbGxFbXBsb3llZXM7XHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lID0gZ2V0QWxsRW1wbG95ZWVzQnlOYW1lO1xyXG5leHBvcnRzLmFkZEVtcGxveWVlID0gYWRkRW1wbG95ZWU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsRW1wbG95ZWVzID0gZGVsZXRlQWxsRW1wbG95ZWVzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIE9wZXJhdGlvbnMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRFbXBsb3llZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWQocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIGVtcGxveWVlIHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZCwge1xyXG4gICAgICAgICRzZXQ6IGVtcGxveWVlXHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBlbXBsb3llZTogZW1wbG95ZWUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSB1cGRhdGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQUVtcGxveWVlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24ocmVzcCk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEVtcGxveWVlRGV0YWlsc0J5SWQgPSBnZXRFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZUVtcGxveWVlRGV0YWlsc0J5SWQgPSB1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFFbXBsb3llZUJ5SWQgPSBkZWxldGVBRW1wbG95ZWVCeUlkOyJdfQ==\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find employee with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/08/employeeController_0844f987fc146b4e1119eb653dc3fbc0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2302\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22470,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22467,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":889,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":922,\"endOffset\":1648,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1671,\"endOffset\":3020,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3050,\"endOffset\":3287,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3736,\"endOffset\":4197,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4234,\"endOffset\":4944,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4975,\"endOffset\":5215,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const password_generator = len => {\\n var length = len && len > 10 ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n\\nconst validatePassword = password => {\\n if (!password || password.split('').length < 10) {\\n return {\\n isValid: false,\\n msg: \\\"Password must have at least 10 characters\\\"\\n };\\n }\\n\\n var re = /[0-9]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\n };\\n }\\n\\n re = /[a-z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\n };\\n }\\n\\n re = /[A-Z]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\n };\\n }\\n\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\n\\n if (!re.test(password)) {\\n return {\\n isValid: false,\\n msg: \\\"Error: password must contain at least one special character!\\\"\\n };\\n }\\n\\n return {\\n isValid: true,\\n msg: \\\"Valid password!\\\"\\n };\\n};\\n\\nexports.validatePassword = validatePassword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbInBhc3N3b3JkX2dlbmVyYXRvciIsImxlbiIsImxlbmd0aCIsInN0cmluZyIsIm51bWVyaWMiLCJwdW5jdHVhdGlvbiIsInBhc3N3b3JkIiwiY2hhcmFjdGVyIiwiY3J1bmNoIiwiZW50aXR5MSIsIk1hdGgiLCJjZWlsIiwicmFuZG9tIiwiZW50aXR5MiIsImVudGl0eTMiLCJob2xkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzcGxpdCIsInNvcnQiLCJqb2luIiwic3Vic3RyIiwiZXhwb3J0cyIsInZhbGlkYXRlUGFzc3dvcmQiLCJpc1ZhbGlkIiwibXNnIiwicmUiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxJQUFVQSxHQUFHLEdBQUcsRUFBaEIsR0FBdUJBLEdBQXZCLEdBQStCLEVBQTVDO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLHlCQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBb0IsT0FBTyxDQUFDdEIsa0JBQVIsR0FBNkJBLGtCQUE3Qjs7QUFFQSxNQUFNdUIsZ0JBQWdCLEdBQUlqQixRQUFELElBQWM7QUFDbkMsTUFBSyxDQUFDQSxRQUFGLElBQWdCQSxRQUFRLENBQUNZLEtBQVQsQ0FBZSxFQUFmLEVBQW1CaEIsTUFBbkIsR0FBNEIsRUFBaEQsRUFBcUQ7QUFDakQsV0FBTztBQUNIc0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNELE1BQUlDLEVBQUUsR0FBRyxPQUFUOztBQUNBLE1BQUksQ0FBQ0EsRUFBRSxDQUFDQyxJQUFILENBQVFyQixRQUFSLENBQUwsRUFBd0I7QUFDcEIsV0FBTztBQUNIa0IsTUFBQUEsT0FBTyxFQUFFLEtBRE47QUFFSEMsTUFBQUEsR0FBRyxFQUFFO0FBRkYsS0FBUDtBQUlIOztBQUNEQyxFQUFBQSxFQUFFLEdBQUcsT0FBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDREMsRUFBQUEsRUFBRSxHQUFHLE9BQUw7O0FBQ0EsTUFBSSxDQUFDQSxFQUFFLENBQUNDLElBQUgsQ0FBUXJCLFFBQVIsQ0FBTCxFQUF3QjtBQUNwQixXQUFPO0FBQ0hrQixNQUFBQSxPQUFPLEVBQUUsS0FETjtBQUVIQyxNQUFBQSxHQUFHLEVBQUU7QUFGRixLQUFQO0FBSUg7O0FBQ0RDLEVBQUFBLEVBQUUsR0FBRywyQkFBTDs7QUFDQSxNQUFJLENBQUNBLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRckIsUUFBUixDQUFMLEVBQXdCO0FBQ3BCLFdBQU87QUFDSGtCLE1BQUFBLE9BQU8sRUFBRSxLQUROO0FBRUhDLE1BQUFBLEdBQUcsRUFBRTtBQUZGLEtBQVA7QUFJSDs7QUFDRCxTQUFPO0FBQ0hELElBQUFBLE9BQU8sRUFBRSxJQUROO0FBRUhDLElBQUFBLEdBQUcsRUFBRTtBQUZGLEdBQVA7QUFJSCxDQXZDRDs7QUF3Q0FILE9BQU8sQ0FBQ0MsZ0JBQVIsR0FBMkJBLGdCQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhc3N3b3JkX2dlbmVyYXRvciA9IChsZW4pID0+IHtcclxuICAgIHZhciBsZW5ndGggPSAobGVuKSAmJiAobGVuID4gMTApID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfXs/PjwsLi09JztcclxuICAgIHZhciBwYXNzd29yZCA9IFwiXCI7XHJcbiAgICB2YXIgY2hhcmFjdGVyID0gXCJcIjtcclxuICAgIHZhciBjcnVuY2ggPSB0cnVlO1xyXG4gICAgd2hpbGUgKHBhc3N3b3JkLmxlbmd0aCA8IGxlbmd0aCkge1xyXG4gICAgICAgIGVudGl0eTEgPSBNYXRoLmNlaWwoc3RyaW5nLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICBlbnRpdHkyID0gTWF0aC5jZWlsKG51bWVyaWMubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTMgPSBNYXRoLmNlaWwocHVuY3R1YXRpb24ubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGhvbGQgPSBzdHJpbmcuY2hhckF0KGVudGl0eTEpO1xyXG4gICAgICAgIGhvbGQgPSAocGFzc3dvcmQubGVuZ3RoICUgMiA9PSAwKSA/IChob2xkLnRvVXBwZXJDYXNlKCkpIDogKGhvbGQpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBob2xkO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBudW1lcmljLmNoYXJBdChlbnRpdHkyKTtcclxuICAgICAgICBjaGFyYWN0ZXIgKz0gcHVuY3R1YXRpb24uY2hhckF0KGVudGl0eTMpO1xyXG4gICAgICAgIHBhc3N3b3JkID0gY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gICAgcGFzc3dvcmQgPSBwYXNzd29yZC5zcGxpdCgnJykuc29ydChmdW5jdGlvbiAoKSB7IHJldHVybiAwLjUgLSBNYXRoLnJhbmRvbSgpIH0pLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHBhc3N3b3JkLnN1YnN0cigwLCBsZW5ndGgpO1xyXG59XHJcblxyXG5leHBvcnRzLnBhc3N3b3JkX2dlbmVyYXRvciA9IHBhc3N3b3JkX2dlbmVyYXRvcjtcclxuXHJcbmNvbnN0IHZhbGlkYXRlUGFzc3dvcmQgPSAocGFzc3dvcmQpID0+IHtcclxuICAgIGlmICgoIXBhc3N3b3JkKSB8fCAocGFzc3dvcmQuc3BsaXQoJycpLmxlbmd0aCA8IDEwKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByZSA9IC9bMC05XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBudW1iZXIgKDAtOSkhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZSA9IC9bYS16XS87XHJcbiAgICBpZiAoIXJlLnRlc3QocGFzc3dvcmQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1zZzogXCJFcnJvcjogcGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyIChhLXopIVwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmUgPSAvW0EtWl0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlciAoQS1aKSFcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlID0gL1shQCMkJV4mKigpXyt+YH17Pz48LC49LV0vO1xyXG4gICAgaWYgKCFyZS50ZXN0KHBhc3N3b3JkKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtc2c6IFwiRXJyb3I6IHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIhXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgbXNnOiBcIlZhbGlkIHBhc3N3b3JkIVwiXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy52YWxpZGF0ZVBhc3N3b3JkID0gdmFsaWRhdGVQYXNzd29yZDsiXX0=\",\"originalCode\":\"const password_generator = (len) => {\\r\\n var length = (len) && (len > 10) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`}{?><,.-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\\r\\n\\r\\nconst validatePassword = (password) => {\\r\\n if ((!password) || (password.split('').length < 10)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Password must have at least 10 characters\\\"\\r\\n }\\r\\n }\\r\\n var re = /[0-9]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one number (0-9)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[a-z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one lowercase letter (a-z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[A-Z]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one uppercase letter (A-Z)!\\\"\\r\\n }\\r\\n }\\r\\n re = /[!@#$%^&*()_+~`}{?><,.=-]/;\\r\\n if (!re.test(password)) {\\r\\n return {\\r\\n isValid: false,\\r\\n msg: \\\"Error: password must contain at least one special character!\\\"\\r\\n }\\r\\n }\\r\\n return {\\r\\n isValid: true,\\r\\n msg: \\\"Valid password!\\\"\\r\\n }\\r\\n}\\r\\nexports.validatePassword = validatePassword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/d3/utils_d343476596c637235e166aa853247654.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2303\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8769,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8766,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":116,\"endOffset\":1005,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"validatePassword\",\"ranges\":[{\"startOffset\":1083,\"endOffset\":2008,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/62/placeRouter_6259e7831a09c82f53c1fcb577641c57.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2304\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0b/placeController_0b9ae156fb3b1b351d8b63d27c19acfd.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2305\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.